第三届山东省ACM The Best Seat in ACM Contest


#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;

int dir[4][2]={{-1,0},{1,0},{0,-1},{0,1}};

int main(){

    int T;
    int N,M;
    int s[25][25];
    int v[25][25];
    int i,j;
    int a,b;
    int ma,ma_i,ma_j;
    int ca=0;
    int k;

    scanf("%d",&T);

    while(T--){
        scanf("%d%d",&N,&M);

        for(i=0;i<N;++i){
            for(j=0;j<M;++j){
                scanf("%d",&s[i][j]);
            }
        }

        memset(v,0,sizeof(v));

        for(i=0;i<N;++i){
            for(j=0;j<M;++j){
                for(k=0;k<4;++k){
                    a=i+dir[k][0];
                    b=j+dir[k][1];
                    if(a<0||b<0||a>=N||b>=M){
                        v[i][j]-=1;
                        continue;
                    }
                    if(s[a][b]>s[i][j]){
                        v[i][j]=v[i][j]+(s[a][b]-s[i][j]);
                    }
                    else{
                        v[i][j]=v[i][j]-(s[i][j]-s[a][b]);
                    }
                }
            }
        }

        ma=v[0][0];
        ma_i=0;
        ma_j=0;
        for(i=0;i<N;++i){
            for(j=0;j<M;++j){
                if(v[i][j]>=ma){
                    ma=v[i][j];
                    ma_i=i;
                    ma_j=j;
                }
            }
        }

        printf("Case %d: %d %d %d\n",++ca,ma,ma_i+1,ma_j+1);
    }

    return 0;
}


/**************************************
	Problem id	: SDUT OJ I 
	User name	: 666777 
	Result		: Accepted 
	Take Memory	: 512K 
	Take Time	: 0MS 
	Submit Time	: 2016-04-30 13:53:18  
**************************************/






你可能感兴趣的:(第三届山东省ACM The Best Seat in ACM Contest)