Submission #487666

#TimeUsernameProblemLanguageResultExecution timeMemory
487666stefantagaStove (JOI18_stove)C++14
50 / 100
1077 ms3588 KiB
#include <bits/stdc++.h> using namespace std; long long din[2][100005]; long long mini,v[100005]; int n,k,i,j; void divide(int st,int dr,int mxst,int mxdr,int acum,int inainte) { if (st>dr) { return; } int mij=(st+dr)/2,poz; long long mini=1e12,lim=min(mxdr,mij); din[acum][mij]=1e12; for (int i=mxst;i<=lim;i++) { if (v[mij]-v[i]+1+din[inainte][i-1]<din[acum][mij]) { din[acum][mij]=v[mij]-v[i]+1+din[inainte][i-1]; poz=i; } } divide(st,mij-1,mxst,poz,acum,inainte); divide(mij+1,dr,poz,mxdr,acum,inainte); } int main() { #ifdef HOME ifstream cin("date.in"); ofstream cout("date.out"); #endif // HOME cin>>n>>k; for (i=1;i<=n;i++) { cin>>v[i]; din[1][i]=v[i]-v[1]+1; } for (i=2;i<=k;i++) { int acum,inainte; acum=i%2; inainte=1-acum; divide(1,n,1,n,acum,inainte); } cout<<din[k%2][n]; return 0; }

Compilation message (stderr)

stove.cpp: In function 'void divide(int, int, int, int, int, int)':
stove.cpp:14:15: warning: unused variable 'mini' [-Wunused-variable]
   14 |     long long mini=1e12,lim=min(mxdr,mij);
      |               ^~~~
stove.cpp:24:11: warning: 'poz' may be used uninitialized in this function [-Wmaybe-uninitialized]
   24 |     divide(st,mij-1,mxst,poz,acum,inainte);
      |     ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...