Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
41228 | 王籽易 | 密码锁 | C++ | 解答错误 | 0 | 11 MS | 1036 KB | 1003 | 2022-06-11 15:19:31 |
#include <bits/stdc++.h> using namespace std; int a[6],a2[6],n,m=0,ans2[99999],ans3[99999]; bool check(int i){ for(int j=2;j<=i/j;j++){ if(i%j==0){ return 1; } } return 0; } int f2(int n,int m){ int ans1=0,ans2=0; while(n!=m){ n++; if(n==10){ n=0; } ans1++; } while(n!=m){ n--; if(n==-1){ n=9; } ans2++; } return min(ans1,ans2); } int f(int a[],int b[]){ int sum=0; for(int i=1;i<=5;i++){ sum+=f2(a[i],b[i]); } return sum; } int main(){ for(int i=1;i<=5;i++){ cin>>a2[i]; } for(int i=99999;i>=1;i--){ if(check(i)){ a[1]=i/10000; a[2]=i/1000%10; a[3]=i/100%10; a[4]=i/10%10; a[5]=i%10; int sum=f(a2,a); ans3[i]=i; ans2[i]=sum; } } int minn=ans2[99999],ij; for(int i=99999;i>=1;i--){ if(ans2[i]!=0) minn=min(minn,ans2[i]),ij=i; } a[1]=ij/10000; a[2]=ij/1000%10; a[3]=ij/100%10; a[4]=ij/10%10; a[5]=ij%10; cout<<a[1]<<a[2]<<a[3]<<a[4]<<a[5]; }