제출 #1200420

#제출 시각아이디문제언어결과실행 시간메모리
1200420algoproclubGift Exchange (JOI24_ho_t4)C++20
0 / 100
0 ms324 KiB
// UUID: 193beb76-f309-4147-9d60-7664e1e1a31b #include <bits/stdc++.h> using namespace std; const int MAXN = 500'001; int a[MAXN], b[MAXN]; void solve() { int n; cin >> n; for (int i = 1; i <= n; i++) cin >> a[i]; for (int i = 1; i <= n; i++) cin >> b[i]; int q; cin >> q; while (q--) { int l, r; cin >> l >> r; multiset<pair<int, int>> v; for (int i = l; i <= r; i++) v.insert({a[i], b[i]}); bool ok = true; while (!v.empty() && ok) { if (v.size() == 1) { ok = false; break; } auto [x, y] = *v.begin(); int curr = y; int len = 0; while (1) { auto it = v.lower_bound({curr, 0}); if (it == v.end()) { ok = false; break; } auto [nx, ny] = *it; if (nx == x && ny == y) break; len++; v.erase(it); curr = ny; } if (len == 0) { ok = false; } v.erase(prev(v.end())); } cout << (ok?"Yes\n":"No\n"); } } int main() { ios::sync_with_stdio(0); cin.tie(0); int t = 1; // cin >> t; while (t--) solve(); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...