Submission #421802

#TimeUsernameProblemLanguageResultExecution timeMemory
421802PyqeSequence (BOI14_sequence)C++14
100 / 100
139 ms1376 KiB
#include <bits/stdc++.h> using namespace std; const long long inf=1e18; long long nn[8],p10[60],z=inf; bitset<11> fq[8][100069],tmp; void rk(long long x,long long cw,bool bad) { if(nn[x]>1) { long long i,j; for(i=0;i<10-bad;i++) { nn[x+1]=(nn[x]+i-1)/10+1; for(j=0;j<nn[x+1];j++) { fq[x+1][j].reset(); } for(j=0;j<nn[x];j++) { tmp=fq[x][j]; if((i+j)%10==0) { tmp[10]=tmp[10]||tmp[0]; } tmp[(i+j)%10]=0; if((i+j)%10) { tmp[10]=0; } fq[x+1][(i+j)/10]|=tmp; } rk(x+1,cw+i*p10[x],nn[x+1]==nn[x]); } } else { long long i,l=0,p=x; for(i=9;i;i--) { if(fq[x][0][i]) { cw+=i*p10[p]; p++; l=i; } } if(fq[x][0][0]) { cw+=l*(p10[p]-p10[p-1]); p++; } if((fq[x][0][0]||fq[x][0][10])&&!l) { cw+=p10[p]; } z=min(z,cw); } } int main() { long long i,k; p10[0]=1; for(i=1;i<60;i++) { p10[i]=p10[i-1]*10; } scanf("%lld",nn); for(i=0;i<nn[0];i++) { scanf("%lld",&k); fq[0][i][k]=1; } rk(0,0,0); printf("%lld\n",z); }

Compilation message (stderr)

sequence.cpp: In function 'int main()':
sequence.cpp:74:7: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   74 |  scanf("%lld",nn);
      |  ~~~~~^~~~~~~~~~~
sequence.cpp:77:8: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   77 |   scanf("%lld",&k);
      |   ~~~~~^~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...