Submission #465007

#TimeUsernameProblemLanguageResultExecution timeMemory
465007DeepessonGrowing Vegetables is Fun 4 (JOI21_ho_t1)C++17
100 / 100
32 ms3780 KiB
#include <bits/stdc++.h> int N; bool valido(long long* seq) { bool cresce=true; long long last=0; for(int i=0;i!=N;++i){ if(seq[i]>last){ if(!cresce)return false; }else if(seq[i]<last){ if(cresce)cresce=false; }else { return false; } last=seq[i]; } return true; } int main() { std::ios::sync_with_stdio(false); std::cin.tie(0); std::cout.tie(0); std::cin>>N; long long array[N]; for(auto&x:array)std::cin>>x; if(N==2){ if(array[0]==array[1]){ printf("1\n");return 0; }else printf("0\n");return 0; } long long cur1 = 1,cur2=N-2,soma=0; long long total=0; while(cur1!=cur2){ if(array[cur1-1]<array[cur1]){ ++cur1; array[cur1]+=soma; continue; } if(array[cur2+1]<array[cur2]){ --cur2; array[cur2]+=soma; continue; } long long to_cur1 = (array[cur1-1]+1LL)-array[cur1]; long long to_cur2 = (array[cur2+1]+1LL)-array[cur2]; long long res = std::min(to_cur1,to_cur2); array[cur1]+=res; array[cur2]+=res; soma+=res; total+=res; } array[cur1]-=soma; if(valido(array))goto fim;{ long long pico_cresce = (array[cur1-1]+1LL)-array[cur1]; long long pico_desce = (array[cur2+1]+1LL)-array[cur2]; //std::cout<<pico_cresce << " " << pico_desce << "\n"; total+=std::min(pico_cresce,pico_desce); array[cur1]+=std::min(pico_cresce,pico_desce); while(!valido(array)){ ++array[cur1]; ++total; }} fim: std::cout<<total<<"\n"; }

Compilation message (stderr)

Main.cpp: In function 'int main()':
Main.cpp:53:5: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
   53 |     if(valido(array))goto fim;{
      |     ^~
Main.cpp:53:31: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
   53 |     if(valido(array))goto fim;{
      |                               ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...