제출 #565598

#제출 시각아이디문제언어결과실행 시간메모리
5655981zaid1Xylophone (JOI18_xylophone)C++14
11 / 100
76 ms288 KiB
#include "xylophone.h" #include <bits/stdc++.h> using namespace std; // static int A[5000]; struct range {int l, r, k, x, mx;}; void solve(int n) { vector<int> ans(n+10, 0); queue<range> q; for (int i = n; i >= 2; i--) { int y = (i-1==1?0:query(1, i-1)); if (y != n-1) { q.push({1, i, 1, n, 1}); if (i != n) q.push({i, n, 0, n, 1}); ans[i] = n; break; } } while (!q.empty()) { auto [l, r, k, x, mx] = q.front(); q.pop(); int dif = query(l, r); if (k) { for (int i = l; i < r; i++) { int y = (i+1==r?0:query(i+1, r)); if (y != dif) { if (mx) ans[i] = x-dif; else ans[i] = x+dif; if (i+1 != r) q.push({i+1, r, k, x, mx}); if (l != i) q.push({l, i, k, ans[i], !mx}); break; } } } else { for (int i = r; i > l; i--) { int y = (i-1==l?0:query(l, i-1)); if (y != dif) { if (mx) ans[i] = x-dif; else ans[i] = x+dif; if (i-1 != l) q.push({l, i-1, k, x, mx}); if (i != r) q.push({i, r, k, ans[i], !mx}); break; } } } } for (int i = 1; i <= n; i++) answer(i, ans[i]); }

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

xylophone.cpp: In function 'void solve(int)':
xylophone.cpp:23:8: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   23 |   auto [l, r, k, x, mx] = q.front(); q.pop();
      |        ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...