Submission #1111590

#TimeUsernameProblemLanguageResultExecution timeMemory
1111590zhehanFire (BOI24_fire)C++14
0 / 100
1 ms508 KiB
#include <bits/stdc++.h> using namespace std; typedef pair<int,int> ii; int main() { int n,m,day_start=-1,day_end,a,b; cin>>n>>m; day_end=m; vector<ii> shifts; for(int i=0;i<n;++i){ cin>>a>>b; if(a>b){ a-=day_end; shifts.push_back(ii(a,b)); }else{ shifts.push_back(ii(a,b)); } } sort(shifts.begin(),shifts.end()); priority_queue<ii,vector<ii>> pq; int pointer=0; int counter=0; while(day_start<day_end&&pointer<n){ while(pointer<n&&shifts.at(pointer).first<=day_start+1){ pq.push(ii(shifts.at(pointer).second,shifts.at(pointer).first)); ++pointer; } if(pq.empty()){ break; } day_start=max(day_start,pq.top().first); if(pq.top().second<0){ day_end=min(day_end,m+pq.top().second); } ++counter; pq.pop(); } if(day_start<day_end){ cout<<-1<<'\n'; return 0; } cout<<counter<<'\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...