제출 #994533

#제출 시각아이디문제언어결과실행 시간메모리
994533biankAbracadabra (CEOI22_abracadabra)C++14
0 / 100
207 ms39892 KiB
#include <bits/stdc++.h> using namespace std; const int SZ = 1 << 18; int st[2 * SZ]; void update(int i, int v) { for (st[i += SZ] = v; i /= 2;) st[i] = st[2 * i] + st[2 * i + 1]; } pair<int, int> search(int x) { int u = 1; while (u < SZ) { u *= 2; if (st[u] <= x) { x -= st[u]; u++; } } return {u - SZ, x}; } int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, q; cin >> n >> q; vector<int> a(n), r(n), pos(n); vector<pair<int, int>> query[n + 1]; for (int i = 0; i < n; i++) { cin >> a[i]; --a[i]; pos[a[i]] = i; } for (int i = n - 1; i >= 0; i--) { r[i] = i + 1; while (r[i] < n && a[r[i]] < a[i]) { r[i] = r[r[i]]; } } for (int i = 0; i < n; i = r[i]) { update(a[i], r[i] - i); } for (int idx = 0; idx < q; idx++) { int t, i; cin >> t >> i; t = min(t, n); --i; query[t].emplace_back(i, idx); } vector<int> res(q); for (int t = 0; t <= n; t++) { for (auto [i, idx] : query[t]) { auto [val, d] = search(i); res[idx] = a[pos[val] + d]; } auto [val, d] = search(n / 2); if (d == 0) continue; int tot = st[val + SZ]; update(val, d); for (int i = pos[val] + d; i < pos[val] + tot; i = r[i]) { update(a[i], r[i] - i); } } for (int i = 0; i < q; i++) { cout << res[i] + 1 << '\n'; } return 0; }

컴파일 시 표준 에러 (stderr) 메시지

Main.cpp: In function 'int main()':
Main.cpp:56:19: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   56 |         for (auto [i, idx] : query[t]) {
      |                   ^
Main.cpp:57:18: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   57 |             auto [val, d] = search(i);
      |                  ^
Main.cpp:60:14: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   60 |         auto [val, d] = search(n / 2);
      |              ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...