- /*long long ll = 0xdeadbeefdeadc0deLL;
- long l = 0xdeadbeef;
- unsigned char *tmp;
-
- printf("long long: %lld %llX\n",ll,ll);
- tmp = (char*)≪
- for(i=0;i<sizeof(long long);i++) { printf("%X\n",tmp[i]); }
-
- printf("long: %ld %lX\n",l,l);
- tmp = (char*)&l;
- for(i=0;i<sizeof(long);i++) { printf("%X\n",tmp[i]); }*/
-
- long long rl(long long n);
- long long l = rl(-1614907703);
- printf("---> %lld \n",l);
- if(l >=-64) printf("---> ERROR: %lld >= -64\n",l);
+
+#define HOST_BITS_PER_WIDE_INT 64
+#define HOST_WIDE_INT long long
+
+ extern int ri(int n);
+ int precision = ri(8);
+ long long l;
+
+ l = (precision - HOST_BITS_PER_WIDE_INT > 0
+ ? -1 : ((HOST_WIDE_INT) 1 << (precision - 1)) - 1),
+ (precision - HOST_BITS_PER_WIDE_INT - 1 > 0
+ ? (((HOST_WIDE_INT) 1
+ << (precision - HOST_BITS_PER_WIDE_INT - 1))) - 1
+ : 0);
+
+ printf("%llX\n",l);