#include<iostream> #include<stdio.h> using namespace std; #define inf 100000000 int map[1001][1001]; void put(int n) { int i,j,k; for (j=0;j<n;j++) { for (i=0;i<n;i++) cout<<map[j][i]<<' '; cout<<endl; } } int main() { int i,j,k; int p[10000]; int e[10000]; int n; int t; //cout<<"fdkj"; cin>>t; int num=0; while (t--) { num++; scanf("%d",&n); int total=0; for (i=0;i<n;i++) { scanf("%d",e+i); map[i][i]=0; total+=e[i]; } for (j=0;j<n;j++) { for (i=j+1;i<n;i++) { map[j][i]=map[j][i-1]+e[i-1]; map[i][j]=total-map[j][i]; } } //put(n); printf("Case #%d:",num); for (i=0;i<n;i++) { int ans=inf; for (j=0;j<n;j++) { ans=min(ans,map[j][i]-e[(j-1+n)%n]); ans=min(ans,map[i][j]-e[j]); } printf(" %d",ans+total); } printf("\n"); } } |
Double click to view unformatted code.