Submission #295179

#TimeUsernameProblemLanguageResultExecution timeMemory
295179shivensinha4Kralj (COCI16_kralj)C++17
140 / 140
774 ms43628 KiB
#include <bits/stdc++.h> using namespace std; #define for_(i, s, e) for (int i = s; i < (int) e; i++) #define for__(i, s, e) for (ll i = s; i < e; i++) typedef long long ll; typedef vector<int> vi; typedef pair<int, int> ii; //#define endl '\n' int main() { #ifdef shiven freopen("test.in", "r", stdin); #endif ios_base::sync_with_stdio(false); cin.tie(0); int n; cin >> n; vi a(n), b(n), advPref(n); vector<vi> elfHere(n); for_(i, 0, n) { int k; cin >> k; k -= 1; advPref[k] += 1; elfHere[k].push_back(i); } for_(i, 0, n) cin >> a[i]; for_(i, 0, n) cin >> b[i]; int mn = INT_MAX, mnIdx = -1; for_(i, 0, n) { if (i > 0) advPref[i] += advPref[i-1]; if (advPref[i]-i < mn) { mn = advPref[i]-i; mnIdx = i; } } //cout << "mn: " << mnIdx << endl; mnIdx += 1; int ans = 0; set<int> s; for_(idx, 0, n) { int i = (mnIdx + idx); if (i >= n) i -= n; for (auto j: elfHere[i]) s.insert(b[j]); auto pt = s.lower_bound(a[i]); if (pt == s.end()) { s.erase(s.begin()); } else { ans += 1; s.erase(pt); } } cout << ans << endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...