Zaraki's blog

By Zaraki, 12 years ago, In Russian

Как известно в Codeforces нельзя использовать для чтения 64-битных чисел на С++ спецификатор %lld, а рекомендуется использовать %I64d. Как мне известно это связано с ОС сервера. Если у сервера Windows, то I64d, а если Linux, то %lld. Но если мы хотим автоматически определять, что использавать, I64d или %lld, можно записать код так:

if (defined(WIN32) || !defined(__GNUC__))

#define I "%I64d"

#else

#define I "%lld"

endif

Тогда можно писать так : scanf(I, x); и printf(I, x); Но при попытке сдать такой код предъявят ,что вы используете %lld. Почему??? Ведь используя выше код, автоматически будет использоваться либо %I64d, либо %lld, зависит от ОС проверяющего компютера. Прошу ответить администраторов.

  • Vote: I like it
  • 0
  • Vote: I do not like it