| Run ID | Author | Problem | Lang | Verdict | Score | Time | Memory | Code Length | Submit Time |
|---|---|---|---|---|---|---|---|---|---|
| 42560 | 董承诺 | 加强版密码锁 | C++ | Compile Error | 0 | 0 MS | 0 KB | 640 | 2022-07-02 17:12:51 |
#include <bits/stdc++.h> using namespace std; int a,b[105],c[105]; long long d=2100000000; long long e[105][105]; long long f(int g,int h) { return pow(min(abs(b[g]-h),min(100+h-b[g],100+b[g]-h)),2); } int main(){ cin>>a>>c[1]; for(int i=1;i<=a;i++) { b[i]=c[i]%100; c[i+1]=(c[i]*6807+2831)%201701; } memset(f,-2100000000,sizeof(f)); for(int i=0;i<=99;i++){ e[1][i]=f(1,i); } for(int i=2;i<=a;i++){ for(int j=i-1;j<=99-(a-i);j++){ for(int k=i-2;k<=j-1;k++){ e[i][j]=min(e[i][j],e[i-1][k]+f(i,j)); } } } for(int i=a-1;i<=99;i++){ d=min(d,e[a][i]); } cout<<d<<endl; return 0; }