hdu4500
签到题。。。。话说开始的时候while的括号没打回来 看了好半天啊啊 坑爹啊啊啊啊
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> int main() { int N, M, i, j, a[23][23], b[23][23], t, k; int _evalue( int x, int y ); while( scanf( "%d%d", &N, &M ) ) { if( N == 0 || M == 0 ) break; memset( a, 0, 23 * 23 * sizeof(int) ); memset( b, 0, 23 * 23 * sizeof(int) ); for( i = 1; i <= N; i ++ ) { for( j = 1; j <= M; j ++ ) { scanf( "%d", &a[i][j] ); } } for( i = 1; i <= N; i ++ ) { for( j = 1; j <= M; j ++ ) { b[i][j] += _evalue( a[i][j], a[i-1][j] ); b[i][j] += _evalue( a[i][j], a[i+1][j] ); b[i][j] += _evalue( a[i][j], a[i][j-1] ); b[i][j] += _evalue( a[i][j], a[i][j+1] ); } } t = k = 0; for( i = 1; i <= N; i ++ ) { for( j = 1; j <= M; j ++ ) { if( b[i][j] > b[t][k] ) { t = i; k = j; } } } printf( "%d %d %d\n", t, k, b[t][k] ); } return 0; } int _evalue( int x, int y ) { if( x * y > 0 ) { return -fabs( y ); } else if( x * y < 0 ) { return fabs( y ); } else { return 0; } }