Submission #1270746

#TimeUsernameProblemLanguageResultExecution timeMemory
1270746goulthenTowers (NOI22_towers)C++20
11 / 100
1805 ms79080 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define ll long long #define rep(i,a,b) for (int i = a; i <= b; i++) #define per(i,a,b) for (int i = a; i >= b; i--) #define fi first #define se second #define pii pair<int,int> #define pb push_back const int MAXN = 1e6+10; const int INF = 1e18 + 5; pii a[MAXN],x[MAXN][2]; bool ok[MAXN]; int32_t main() { ios_base::sync_with_stdio(0); cin.tie(nullptr); int n;cin >> n; rep(i,1,1e6) x[i][1].fi = INF; rep(i,1,n) { cin >> a[i].fi >> a[i].se; x[a[i].fi][0] = max(x[a[i].fi][0], {a[i].se,i}); x[a[i].fi][1] = min(x[a[i].fi][1], {a[i].se,i}); } set<int> ys; rep(i,1,1e6) { if (!x[i][0].fi) continue; rep(k,0,1) { if (ys.find(x[i][k].fi) == ys.end()) { ok[x[i][k].se] = 1; ys.insert(x[i][k].fi); } } } ys.clear(); per(i,1e6,1) { if (!x[i][0].fi) continue; rep(k,0,1) { if (ys.find(x[i][k].fi) == ys.end()) { ok[x[i][k].se] = 1; ys.insert(x[i][k].fi); } } } rep(i,1,n) cout << ok[i]; cout << '\n'; 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...