Submission #557544

#TimeUsernameProblemLanguageResultExecution timeMemory
557544MounirInside information (BOI21_servers)C++14
10 / 100
357 ms7712 KiB
#include <bits/stdc++.h> #define all(v) v.begin(), v.end() #define sz(x) (int)x.size() #define pb push_back #define pii pair<int, int> #define chmin(x, v) x = min(x, v) #define chmax(x, v) x = max(x, v) #define print(x) cout << #x << " est " << x << endl; #define x first #define y second #define int long long using namespace std; const int N = 2e5; int deb[N], fin[N]; int sum[2 * N]; int getSum(int g, int d){ if (d < g) return 0; if (g%2 == 1) return sum[g] + getSum(g + 1, d); if (d%2 == 0) return sum[d] + getSum(g, d - 1); return getSum(g/2, d/2); } void upd(int i, int d){ for (int nod = i; nod > 0; nod /= 2) sum[nod] += d; } void changeEtat(int i, int d){ upd(N + deb[i], d); upd(N + fin[i], -d); } signed main(){ int nServs, nReqs; cin >> nServs >> nReqs; for (int i = 1; i <= nServs; ++i){ deb[i] = i, fin[i] = i + 1; changeEtat(i, 1); } nReqs += nServs - 1; while (nReqs--){ char typeReq; cin >> typeReq; if (typeReq == 'S'){ int a, b; cin >> a >> b; changeEtat(a, -1); changeEtat(b, -1); int d = min(deb[a], deb[b]), f = max(fin[a], fin[b]); deb[a] = deb[b] = d; fin[a] = fin[b] = f; changeEtat(a, 1); changeEtat(b, 1); } else if (typeReq == 'Q'){ int a, d; cin >> a >> d; if (deb[a] <= d && d < fin[a]) cout << "yes" << endl; else cout << "no" << endl; } else { int d; cin >> d; cout << getSum(N, N + d) << endl; } } 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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...