Submission #1090515

#TimeUsernameProblemLanguageResultExecution timeMemory
1090515BigBadBullyFire (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; void solve() { int n,m; cin >> n >> m; vector<pii> v(n); for (int i = 0; i< n; i++) { cin >> v[i].ff >> v[i].ss; while(v[i].ff>v[i].ss) v[i].ss+=m; } 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; } for (int i = 0; i< n;i++) v[i].ss%=m; { int bigie = 0; for (int i = 0;i < n; i++) if (v[i].ff > v[i].ss) bigie=max(v[i].ss,bigie); 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 (v[0].ff != 0) { cout << -1 << '\n'; return; } for (int i = 1; i < n; i++) { if (v[i].ff > prev) { used++; prev = v[i-1].ss; if (v[i].ff > prev) { cout << -1 << '\n'; return; } } if (prev != 0 && v[i].ss == 0) { used++; break; } } cout << used << '\n'; } signed main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); solve(); }
#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...