http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2409
View Code
1 #include<stdio.h> 2 int main() 3 { 4 int a[22][22],v[21][21],i,j,m,n,t,k,flag,mf,nf; 5 scanf("%d",&t); 6 for(k=1;k<=t;k++) 7 { 8 scanf("%d%d",&m,&n); 9 flag=0; 10 for(i=0;i<=21;i++) 11 { 12 for(j=0;j<=21;j++) 13 { 14 a[i][j]=0; 15 } 16 } 17 for(i=1;i<=m;i++) 18 { 19 for(j=1;j<=n;j++) 20 { 21 scanf("%d",&a[i][j]); 22 v[i][j]=0; 23 } 24 } 25 for(i=1;i<=m;i++) 26 { 27 for(j=1;j<=n;j++) 28 { 29 if(a[i-1][j]) v[i][j]+=a[i-1][j]-a[i][j]; 30 else v[i][j]--; 31 if(a[i+1][j]) v[i][j]+=a[i+1][j]-a[i][j]; 32 else v[i][j]--; 33 if(a[i][j-1]) v[i][j]+=a[i][j-1]-a[i][j]; 34 else v[i][j]--; 35 if(a[i][j+1]) v[i][j]+=a[i][j+1]-a[i][j]; 36 else v[i][j]--; 37 } 38 } 39 for(i=1;i<=m;i++) 40 { 41 for(j=1;j<=n;j++) 42 { 43 if(v[i][j]>flag) 44 { 45 flag=v[i][j]; 46 mf=i; 47 nf=j; 48 } 49 } 50 } 51 printf("Case %d: %d %d %d\n",k,flag,mf,nf); 52 } 53 return 0; 54 }
1.各队实力可以表示为一个正整数。
2.一个座位的值与相邻的座椅(上/下/左/右,只有四个方向被考虑)。
3.相邻的座位,如果这支球队的实力比你强,两支球队相差的绝对值应该被加入到你的座位,否则,差的绝对值应减去您的座位。
4.如果相邻的座位是空的(这意味着您位于最左/右/上/下),你的座位应减去1。
5.在比赛中最好的一个,是座具有最高的价值。
6.座椅的初始值是零。