Submission #689956

#TimeUsernameProblemLanguageResultExecution timeMemory
689956WhiteHedgehog Daniyar and Algorithms (IZhO19_sortbooks)C++14
0 / 100
195 ms262144 KiB
#include <bits/stdc++.h> #define endl "\n" using namespace std; vector<pair<long long,long long>>ans[1000005]; long long red[1000005]; stack<pair<long long,long long>>s; long long binary(long long v,long long num){ long long l=0,r=ans[v].size()-1; while(l<r){ long long mid=(r+l)/2; if(ans[v][mid].second<num)l=mid+1; else r=mid; } return l; } int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); long long n,m; cin>>n>>m; for(int i=0;i<n;i++)cin>>red[i]; s.push({red[0],0}); for(int i=1;i<n;i++){ ans[i]=ans[i-1]; while(s.empty()!=true && red[i]>s.top().first)s.pop(); if(s.empty()!=true){ ans[i].push_back({s.top().first+red[i],s.top().second}); for(int j=0;j<ans[i].size()-1;j++){ if(ans[i][j].first<red[ans[i][j].second]+red[i]){ ans[i][j].first=red[ans[i][j].second]+red[i]; } } } s.push({red[i],i}); } /** for(int i=0;i<n;i++){ cout<<i<<": "; for(int j=0;j<ans[i].size();j++){ cout<<ans[i][j].first<<";"<<ans[i][j].second<<" "; } cout<<endl; } **/ for(int i=0;i<m;i++){ long long a,b,c,now; cin>>a>>b>>c; a--;b--; now=binary(b,a); if(now>ans[b].size()-1)now=ans[b].size()-1; if(c>=ans[b][now].first)cout<<1<<endl; else cout<<0<<endl; } return 0; }

Compilation message (stderr)

sortbooks.cpp: In function 'int main()':
sortbooks.cpp:35:30: 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]
   35 |                 for(int j=0;j<ans[i].size()-1;j++){
      |                             ~^~~~~~~~~~~~~~~~
sortbooks.cpp:59:15: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   59 |         if(now>ans[b].size()-1)now=ans[b].size()-1;
      |            ~~~^~~~~~~~~~~~~~~~
#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...