Здесь приведены 2 решения одной задачи: 20274603, 20298628. Единственная разница между ними — это двумерный массив last. В первом случае было last[MAXN][MAXQ], а во втором — last[MAXQ][MAXN]. MAXN = 103 + 7, MAXQ = 105 + 7. Я итерировался только через то измерение, которое имеет размер MAXN. Первый код примерно в 5 раз медленнее. Кто-то может объяснить почему? Спасибо заранее.
It's about cache-friendly code. You can read about it here.
Got it finally! It depends on the order of how you run your for loops.
Автокомментарий: текст был переведен пользователем mshcherba (оригинальная версия, переведенная версия, сравнить).
You would have known about it if you did codechef long contests. Many people got TLE just because of this and you can imagine how they felt once they knew about it after the contest.
I was confused and I saw the previous codechef contests where this problem arised. Here you got AC by keeping first dimension size lower, while here you can see people complaining about how arr[n][logn] gave TLE while arr[logn][n] gave AC. Now I am really confused.