Submission #388728

#TimeUsernameProblemLanguageResultExecution timeMemory
388728victoriadFountain (eJOI20_fountain)C++14
30 / 100
545 ms524292 KiB
#include <cmath> #include <cstdio> #include <vector> #include <iostream> #include <algorithm> #include <utility> #include <queue> #include <map> #include <iomanip> #include <stack> #include <fstream> using namespace std; int search(int l,vector<pair<long long int,int> >&v){ int low=0,hi=v.size(),r=-1,mid; while(low<=hi){ mid=low+(hi-low)/2; if(v[mid].first>=l){ r=v[mid].second; hi=mid-1; } else{ low=mid+1; } } if(r==-1)return 0; else return r+1; } void grupos(int nodo,vector<long long int>&d,vector<vector<pair<long long int, int> > >& c, vector<long long int>& v){ int max=d[nodo]; long long int x=0; vector<pair<long long int,int> >a; for(int i=nodo+1;i<d.size();i++){ if(d[i]>max){ max=d[i]; x+=v[i]; a.push_back(make_pair(x,i)); } } c[nodo]=a; } int main(){ ios::sync_with_stdio(false); cin.tie(NULL); int n,q; cin>>n>>q; int vo,r,l; vector<long long int>v(n); vector<long long int>d(n); cin>>d[0]>>v[0]; for(int i=1;i<n;i++){ cin>>d[i]>>v[i]; } vector<vector<pair<long long int, int> > >c(n); vector<bool>p(n,false); for(int i=0;i<n;i++){ grupos(i,d,c,v); } for(int i=0;i<q;i++){ cin>>r>>l; r--; l-=v[r]; if(l<=0)cout<<r+1<<"\n"; else{ if(c[r].size()==0)cout<<0<<"\n"; else cout<<search(l,c[r])<<"\n"; } } return 0; }

Compilation message (stderr)

fountain.cpp: In function 'void grupos(int, std::vector<long long int>&, std::vector<std::vector<std::pair<long long int, int> > >&, std::vector<long long int>&)':
fountain.cpp:33:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   33 |    for(int i=nodo+1;i<d.size();i++){
      |                     ~^~~~~~~~~
fountain.cpp: In function 'int main()':
fountain.cpp:47:9: warning: unused variable 'vo' [-Wunused-variable]
   47 |     int vo,r,l;
      |         ^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...