Submission #12020

#TimeUsernameProblemLanguageResultExecution timeMemory
12020dohyun0324Sequence (BOI14_sequence)C++98
0 / 100
0 ms1240 KiB
#include<stdio.h> #include<vector> using namespace std; long long int n,dap=2147483647,c,p,arr[513]; void dfs(long long int num,vector<int>a,int n,long long int w) { int i,j; if(num>=dap) return; if(n==1) { c=0; p=1; for(i=0;i<=9;i++) { if((1<<i)&a[0]) { c=c*10+i; } } c*=w; c+=num; if(c==0) c=w; if(dap>c) { dap=c; } return; } for(i=0;i<=9;i++) { vector<int>s((i+n-1)/10+1); for(j=0;j<n;j++) { if(arr[a[j]]!=(i+j)%10) s[(i+j)/10]|=a[j]; } dfs(i*w+num,s,(i+n-1)/10+1,w*10); } } int main() { int i; scanf("%lld",&n); vector<int>a(n); for(i=0;i<=9;i++) arr[1<<i]=i; for(i=0;i<n;i++){scanf("%lld",&a[i]); a[i]=(1<<a[i]);} dfs(0,a,n,1); printf("%lld",dap); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...