Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
20015 | 陈路垚 | 优美连接 | C++ | 通过 | 100 | 31 MS | 256 KB | 612 | 2021-05-27 21:53:45 |
#include<iostream> #include<cmath> using namespace std; int a[21],b[21],used[21],ans=10000; int n,k; void check() { int x,y,i,sum=0; x=b[1]/10; y=b[1]%10; sum=abs(x-y); for(i=2;i<=n;++i){ x=y; y=b[i]/10; sum+=abs(x-y); x=y; y=b[i]%10; sum+=abs(x-y); } if(sum<ans)ans=sum; } void dfs(int t) { if(t==n){check();return;} else for(int i=1;i<=n;i++){ if(a[used[i]])continue; b[t+1]=a[i]; used[i]=1; dfs(t+1); used[i]=0; } } int main() { cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; dfs(0); cout<<ans; return 0; }