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

Автор Anubhabghosh, история, 4 года назад, По-английски

Problem link: https://mirror.codeforces.com/contest/1423/problem/K

submission link: https://mirror.codeforces.com/contest/1423/submission/97905194

I don't understand why I am getting TLE can anyone help?

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

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

Instead of running an upper bound for each case, maybe try keeping an array where a[i] is the number of primes till i.

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

Replace cout with printf. std::cout is too slow for printing.

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

    That's a myth. With non-synchronisation with stdio, cout is as fast as printf, if not faster.

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

First of all, cout.tie(NULL) doesn't do anything (literally).

Your code gets TLE because endl is slow (and unnecessary here).

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

    Thank you very much. Now I understand why it was giving TLE. After replacing endl with "\n" now it is giving ac.