Блог пользователя jaguar1996

Автор jaguar1996, история, 8 лет назад, По-русски

В 372 раунде у меня упало решение по задаче B http://mirror.codeforces.com/contest/716/problem/B Упало на 89 тесте из-за того что выводил ? в одном месте, хотя у меня была следующая проверка:

if (s[i]=='?')

cout << "A";

else

cout << s[i];

Заменил эту проверку на

if (s[i]>='A' && s[i]<='Z')

cout << s[i];

else

cout << "A";

и решение прошло. Кто нибудь может объяснить почему это так работает?

http://mirror.codeforces.com/contest/716/submission/20701017 — WA89

http://mirror.codeforces.com/contest/716/submission/20733300 — AC

  • Проголосовать: нравится
  • +3
  • Проголосовать: не нравится

»
8 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Не перестаю удивляться упоротым различиям в работе разных компиляторов — на MSVC++ код выдает AC 20737100

»
8 лет назад, # |
  Проголосовать: нравится +6 Проголосовать: не нравится

Может это из-за того, что в первом случае у тебя цикл по i внутри цикла по i, а во втором случае ты его переписал на j. Хотя я не представляю, кто вообще позволил ему такое компилировать.