Submission #903843

#TimeUsernameProblemLanguageResultExecution timeMemory
903843pccFuel Station (NOI20_fuelstation)C++14
100 / 100
512 ms59964 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define pll pair<ll,ll> #define pii pair<int,int> #define fs first #define sc second #define tlll tuple<ll,ll,ll> #define ls (now*2+1) #define rs (now*2+2) #define mid ((l+r)>>1) const int mxn = 3e5+10; ll N,L; pll segtree[mxn*12]; pair<ll,pll> arr[mxn]; vector<pll> v; vector<int> all; void modify(int now,int l,int r,int s,int e,ll v){ if(l>=s&&e>=r){ segtree[now].sc += v; return; } if(mid>=s)modify(now*2+1,l,mid,s,e,v); if(mid<e)modify(now*2+2,mid+1,r,s,e,v); segtree[now].fs = min(segtree[ls].fs+segtree[ls].sc,segtree[rs].fs+segtree[rs].sc); } int main(){ ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); cin>>N>>L; for(int i = 1;i<=N;i++){ cin>>arr[i].fs>>arr[i].sc.fs>>arr[i].sc.sc; v.push_back(make_pair(arr[i].sc.sc,i)); all.push_back(arr[i].fs); all.push_back(arr[i].fs+1); if(arr[i].fs-1>0)all.push_back(arr[i].fs-1); } all.push_back(0); all.push_back(L); sort(all.begin(),all.end()); all.resize(unique(all.begin(),all.end())-all.begin()); while(all.back()>L)all.pop_back(); ll len = all.size(); for(int i = 0;i<len;i++){ modify(0,0,len,i,i,-all[i]); } ll ans = L; sort(v.rbegin(),v.rend()); v.push_back(make_pair(0,0)); //for(auto &i:all)cout<<i<<',';cout<<endl; for(int i = 0;i+1<v.size();i++){ int now = v[i].sc; int p = lower_bound(all.begin(),all.end(),arr[now].fs)-all.begin(); modify(0,0,len,p+1,len,arr[now].sc.fs); ll tans = max(-(segtree[0].fs+segtree[0].sc),v[i+1].fs); //cout<<v[i].fs<<":"<<now<<","<<p<<" "<<tans<<endl; if(v[i].fs>=tans)ans = min(ans,tans); } cout<<ans; }

Compilation message (stderr)

FuelStation.cpp: In function 'int main()':
FuelStation.cpp:56:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   56 |  for(int i = 0;i+1<v.size();i++){
      |                ~~~^~~~~~~~~
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...