Submission #483292

#TimeUsernameProblemLanguageResultExecution timeMemory
483292rainboySpecijacija (COCI20_specijacija)C11
0 / 110
4082 ms4816 KiB
#include <stdio.h> #define N 200000 int depth(long long i) { int d = 0; while ((long long) (d + 1) * (d + 2) / 2 <= i) d++; return d; } int main() { static long long ii[N]; int n, q, t, i; long long n_, ans; scanf("%d%d%d", &n, &q, &t); for (i = 0; i < n; i++) scanf("%lld", &ii[i]), ii[i]--, ii[i] -= (long long) i * (i + 1) / 2; n_ = (n + 1) * (n + 2) / 2, ans = 0; while (q--) { long long i, j; int di, dj; scanf("%lld%lld", &i, &j), i--, j--; i = (i + t * ans) % n_, j = (j + t * ans) % n_; di = depth(i), i -= (long long) di * (di + 1) / 2; dj = depth(j), j -= (long long) dj * (dj + 1) / 2; while (di != dj || i != j) if (di > dj) { if (i > ii[--di]) i--; } else { if (j > ii[--dj]) j--; } printf("%lld\n", ans = (long long) di * (di + 1) / 2 + i + 1); } return 0; }

Compilation message (stderr)

Main.c: In function 'main':
Main.c:18:2: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
   18 |  scanf("%d%d%d", &n, &q, &t);
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~
Main.c:20:3: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
   20 |   scanf("%lld", &ii[i]), ii[i]--, ii[i] -= (long long) i * (i + 1) / 2;
      |   ^~~~~~~~~~~~~~~~~~~~~
Main.c:26:3: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
   26 |   scanf("%lld%lld", &i, &j), i--, j--;
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...