Submission #1281890

#TimeUsernameProblemLanguageResultExecution timeMemory
1281890muhammad-ahmadAdvertisement 2 (JOI23_ho_t2)C++20
0 / 100
433 ms20200 KiB
#include <bits/stdc++.h> using namespace std; #define int long long signed main(){ int n; cin >> n; int X[n + 1] = {}, E[n + 1] = {}; map<int, int> ma, best; for (int i = 1; i <= n; i++){ cin >> X[i] >> E[i]; ma[X[i]] = max(ma[X[i]], E[i]); } for (int i = 1; i <= n; i++){ if (ma[X[i]] == E[i]) best[X[i]] = i; } map<int, vector<int>> idx; vector<int> iter; for (int i = 1; i <= n; i++){ if (idx[E[i]].size() == 0) iter.push_back(E[i]); idx[E[i]].push_back(i); } sort(iter.rbegin(), iter.rend()); vector<int> a; for (auto i : iter){ for (auto j : idx[i]) a.push_back(j); } int ans = 0; int vis[n + 1] = {}; for (auto i : a){ if (vis[i]) continue; ans++; vis[i] = 1; int idx = i - 1; while (idx > 0 && vis[idx] == 0){ if (abs(X[i] - X[idx]) <= E[i] - E[idx]){ vis[idx] = 2; } idx--; } idx = i + 1; while (idx <= n && vis[idx] == 0){ if (abs(X[i] - X[idx]) <= E[i] - E[idx]){ vis[idx] = 2; } idx++; } } // for (int i = 1; i <= n; i++) cout << vis[i] << ' '; // cout << endl; cout << ans << endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...