Submission #1141580

#TimeUsernameProblemLanguageResultExecution timeMemory
1141580ghammazhassanFire (BOI24_fire)C++20
14 / 100
2094 ms12976 KiB
// #include <bits/stdc++.h> #include <iostream> #include <cmath> #include <algorithm> #include <map> #include <vector> #include <iomanip> #include <string> #include <queue> #include <set> #include <deque> using namespace std; #define int long long #define endl "\n"; const int N=2e5+5; const int M=1e9+7; void solve() { int n,m; cin >> n >> m; vector<int>l,r; vector<pair<int,int>>a; for (int i=0;i<n;i++){ int x,y; cin >> x >> y; if (x>y){ y+=m; } a.push_back({x,y}); } sort(a.begin(),a.end()); for (int i=0;i<n;i++){ int x=a[i].first; int y=a[i].second; l.push_back(x); r.push_back(y); } for (int i=0;i<n;i++){ l.push_back(l[i]+m); r.push_back(r[i]+m); } int u=0; int j=0; for (int i=0;i<n;i++){ if (r[i]-l[i]>u){ j=i; u=r[i]-l[i]; } } int mi=l[j]; int mx=r[j]; int c=1; while (mx-mi<m){ int u=0; int f=0; for (int i=0;i<2*n;i++){ if (l[i]<=mx and r[i]-mx>u){ f=i; u=r[i]-mx; } } if (u==0){ break; } mx+=u; c++; } if (mx-mi>=m){ cout << c << endl; } else{ cout << -1 << endl; } } signed main() { ios::sync_with_stdio(0);//DO NOT USE IN INTERACTIVE cin.tie(0), cout.tie(0);//DO NOT USE IN INTERACTIVE cout << fixed<<setprecision(9); int t=1; // cin >> t; for (int _=1;_<=t;_++){ 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...