10分求助
查看原帖
10分求助
448990
Dreamer__楼主2021/6/3 13:16

为什么只有第一个测试点过了啊啊啊啊啊

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<ctime>
#include<map>
#include<set>
#include<algorithm>


using namespace std ;


int n ;

int m[2000][2000] ;

int ans = -1 ;

int num ;


void f ( int x , int y  ) {
	
	
	for ( int i = x ; i >= 1 ; i -= 1 ) {
		
		if ( m[i][y] != 0 ) num += m[i][y] ;
		
	}
	
	for ( int j = y ; j >= 1 ; j -= 1 ) {
		
		if ( m[x][j] != 0 ) num += m[x][j] ;
		
	}
	
	
	if ( num > ans ) ans = num ;
	
	
	return ;
	
}





int main () {
	
	cin >> n ;
	
	for ( int i = 1 ; i <= n ; i += 1 ) {
		
		for ( int j = 1 ; j <= n ; j += 1 ) {
			
			cin >> m[i][j] ;
				
				
			}
			
			
		}
		
	
	for ( int i = 1 ; i <= n ; i += 1 ) {
		
		for ( int j = 1 ; j <= n ; j += 1 ) {
			
			if ( m[i][j] == 0 ) {
				
				f ( i , j ) ;
					
				
			}
			
			
			
		}
		
		
	}
	
	
	if ( ans == -1 ) cout << "Bad Game!" << endl ;
	
	else cout << ans << endl ;
	
	
}
2021/6/3 13:16
加载中...