제출 #555051

#제출 시각아이디문제언어결과실행 시간메모리
555051kshitij_sodaniFish 2 (JOI22_fish2)C++14
0 / 100
37 ms16776 KiB
#include <bits/stdc++.h> using namespace std; typedef long long llo; #define a first #define b second #define pb push_back #define endl '\n' llo it[100001]; vector<llo> aa[100001]; llo pre[100001]; vector<pair<llo,llo>> bb[100001]; vector<pair<llo,llo>> cc[100001]; int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); llo n,q; cin>>n; for(llo i=0;i<n;i++){ cin>>it[i]; pre[i+1]=pre[i]+it[i]; } cin>>q; for(llo i=1;i<n;i++){ if(it[i]<it[i-1]){ aa[i].pb(i); } for(auto j:aa[i-1]){ if(pre[i+1]-pre[j]<it[j-1]){ aa[i].pb(j); } } /*if(i==7){ for(auto j:aa[i]){ cout<<j<<",,"; } cout<<endl; }*/ if(i<n-1){ for(auto j:aa[i]){ if(pre[i+1]-pre[j]<it[i+1]){ bb[j-1].pb({i,j}); cc[i+1].pb({i,j}); //cout<<i<<":"<<j<<endl; } } } } multiset<pair<llo,llo>> cur; llo ans=n; for(llo i=0;i<n;i++){ for(auto j:cc[i]){ auto jj=cur.find({j.a,-j.b}); cur.erase(jj); } if(cur.size()){ pair<llo,llo> no=*(cur.begin()); no.b=-no.b; ans--; } else{ } for(auto j:bb[i]){ cur.insert({j.a,-j.b}); } } for(llo i=1;i<n;i++){ if(pre[i]<it[i]){ ans--; break; } } for(llo i=n-2;i>=0;i--){ if(it[i]>(pre[n]-pre[i+1])){ ans--; break; } } cout<<ans<<endl; 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...