Сегодня отправил решение по одной задаче на языке C. Выбрал компилятор GNU C11, но получил TL (1 сек) на 11 тесте. Потом отправил тот же код с компилятором GNU C и получил OK (124 мс). Решение так же заходит на GNU C++ и GNU C++11. В коде не вижу UB. В задаче особо негде TL-иться. Решение O(n), n = 300000. Единственная возможная проблема: 300000 чисел на ввод и вывод. Почему в GNU C11 ввод и вывод работают в 10 раз медленнее? Или есть другая причина?
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define MAX_N 300000
int arr[MAX_N];
int main(int pArgc, char **pArgs) {
#ifdef LOCAL
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
int n;
scanf("%d", &n);
int k = n;
printf("1 ");
for (int i = 0; i < n; ++i) {
int x;
scanf("%d", &x);
--x;
arr[x] = 1;
while (k > 0 && arr[k - 1])
--k;
printf("%d ", i + 2 - n + k);
}
return 0;
}
А проблема всё ещё есть ( Не очень понятно, почему так происходит