Submission #840789

#TimeUsernameProblemLanguageResultExecution timeMemory
840789Andrijanikolic73Fountain (eJOI20_fountain)C++17
60 / 100
272 ms6256 KiB
#include <bits/stdc++.h> #define int long long using namespace std; signed main(){ int n,q; cin>>n>>q; int koliko[n+1]; int staje[n+1]; for(int i=1;i<=n;i++)cin>>koliko[i]>>staje[i]; if(n<=1000&&q<=2000){ while(q--){ int r,k; cin>>r>>k; vector<int>R; int z=r; R.push_back(r); for(int i=z;i<n;i=z){ //cout<<i<<" "; int ok=0; for(int j=i+1;j<=n;j++){ if(koliko[i]<koliko[j]){ ok=1; z=j; R.push_back(j); break; } } if(!ok)break; } int ans=0; for(auto it:R){ k-=staje[it]; if(k<=0){ ans=it; break; } } cout<<ans; cout<<endl; } return 0; } int ok=1; for(int i=1;i<n;i++){ ok&=(koliko[i]<koliko[i+1]); } if(ok){ int pref[n+1]; pref[0]=0; for(int i=1;i<=n;i++)pref[i]=pref[i-1]+staje[i]; while(q--){ int i,x; cin>>i>>x; int l=i,r=n,p=0; while(l<=r){ int mid=(l+r)/2; if(pref[mid]-pref[i-1]>=x){ r=mid-1; p=mid; } else l=mid+1; } cout<<p; cout<<endl; } } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...