Submission #384305

#TimeUsernameProblemLanguageResultExecution timeMemory
384305vanicBigger segments (IZhO19_segments)C++14
0 / 100
1 ms364 KiB
#include <iostream> #include <cmath> #include <algorithm> #include <vector> using namespace std; typedef long long ll; const int maxn=5e5+5; vector < int > ind; vector < ll > val; ll a[maxn]; void siftaj(int x){ if(x==val.size()-1 || x==-1){ return; } bool jes=0; while(val[x]+a[ind[x]]<=val[x+1]-a[ind[x]]){ jes=1; val[x]+=a[ind[x]]; val[x+1]-=a[ind[x]]; ind[x]++; } if(jes){ siftaj(x-1); siftaj(x+1); } } int main(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n; cin >> n; for(int i=0; i<n; i++){ cin >> a[i]; } ind.push_back(1); val.push_back(a[0]); ll sad=0; for(int i=1; i<n; i++){ sad+=a[i]; if(val.back()<=sad){ val.push_back(sad); ind.push_back(i+1); siftaj(val.size()-2); sad=0; } } cout << val.size() << '\n'; return 0; }

Compilation message (stderr)

segments.cpp: In function 'void siftaj(int)':
segments.cpp:16:6: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   16 |  if(x==val.size()-1 || x==-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...