Submission #1090687

#TimeUsernameProblemLanguageResultExecution timeMemory
1090687BigBadBullyFire (BOI24_fire)C++17
0 / 100
1 ms348 KiB
#include <bits/stdc++.h> #define ff first #define ss second #define int long long #define pii pair<int, int> #define ff first #define ss second using namespace std; const int inf = 1e17; const int mod = 998244353; int solve2(int n,int m,vector<pii> v) { sort(v.begin(),v.end()); { vector<bool> del(n); int maxi = 0; for (int i = 0; i < n;i ++) { if (v[i].ss <= maxi) del[i] = 1; maxi = max(maxi,v[i].ss); } vector<pii> neu; for (int i = 0; i < n; i++) if (!del[i]) neu.push_back(v[i]); n = neu.size(); v = neu; } { vector<bool> del(n); int mini = v[n-1].ss; for (int i = n-1; i >= 0;i--) { if (v[i].ff >= mini) del[i] = 1; mini = min(mini,v[i].ff); } vector<pii> neu; for (int i = 0; i < n; i++) if (!del[i]) neu.push_back(v[i]); n = neu.size(); v = neu; } for (int i = 0;i < n; i++) if (v[i].ff > v[i].ss) v[i].ss+=m; for (int i = 0; i< n;i++) v[i].ss%=m; /*for (int i = 0; i < n; i++) cout << v[i].ff << ' ' << v[i].ss << '\n';*/ { int bigie = 0; for (int i = 0; i < n; i++) if (v[i].ff > v[i].ss) bigie = max(bigie,v[i].ss); vector<bool> del(n); for (int i = 0; i < n; i++) if (v[i].ff < v[i].ss && v[i].ss < bigie) del[i] = 1; vector<pii> neu; for (int i = 0; i < n; i++) if (!del[i]) neu.push_back(v[i]); n = neu.size(); v = neu; } int prev = v[0].ss; int used = 1; if (n==1) { return -1; } if (v[0].ff != 0) { return -1; } for (int i = 1; i < n; i++) { if (v[i].ff > prev) { used++; prev = v[i-1].ss; if (v[i].ff > prev) { return -1; } } if (prev != 0 && v[i].ss == 0) { used++; prev = inf; break; } } if(prev == inf) return used; else return -1; } signed main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n,m; cin >> n >> m; vector<pii> v(n); for (int i = 0; i < n; i++) cin >> v[i].ff >> v[i].ss; cout << solve2(n,m,v) << 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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...