MAXMAT 문제 풀이 오답 질문입니다.

  • kun452
    kun452

    테스트 데이터를 가지고 돌렸을 경우 테스트가 정상적을 답이 뜨는데 자꾸 오답이 뜨네요

    {{VnTpUI9dVIJVzc63}}
    
    
    #include <iostream>
    #include <algorithm>
    #include <vector>
    #include <string>
    
    using namespace std;
    
    int BOARD[201][201];
    
    int Func(int a, int b, int n){ // (a,b)에서 시작하는 최댓값 => a행 b열
        int *A = new int[n-b]; 
        for(int i=0; i<n-b; i++){
            A[i] = 0;
        }
    
        int MAX = 0;
        int SUM = 0;
        for(int i=a; i<n; i++){
            for(int j=b; j<n; j++){
                MAX = max(SUM + BOARD[i][j]+A[j-b], MAX);
                SUM = SUM + BOARD[i][j];
                A[j-b] = SUM + A[j-b];
            }
    
            SUM = 0;
        }
    
        delete []A;
    
        return MAX;
    }
    
    int main(){
        int num;
        cin >> num;
    
        int * A = new int[num];
    
        for(int i=0; i<num; i++){
            int N;
            cin >> N;
    
            for(int j=0; j<201; j++){
                for(int k=0; k<201; k++){
                    BOARD[j][k] = 0;
                }
            }
    
            for(int j=0; j<N; j++){
                for(int k=0; k<N; k++){
                    cin >> BOARD[j][k];
                }
            }
    
            int MAX = 0;
            for(int j=0; j<N; j++){
                for(int k=0; k<N; k++){
                    int P = Func(j, k, N); 
                    MAX = max(MAX, P);
                }
            }
    
            A[i] = MAX;
        }
    
        for(int i=0; i<num; i++){
            cout << A[i] << endl;
        }
    
        return 0;
    }
    
    
    {{zJvLwMP5ZMyMDOHk}}
    

    9년 전
2개의 댓글이 있습니다.
  • Kureyo
    Kureyo

    MAX=0으로 초기화하면 사각형 전체가 음수이면 0을 출력하지않을까요


    9년 전 link
  • kun452
    kun452

    사각형 최대값이 음수일 때를 생각하지 못했네요 ㅠㅠ Kureyo님 감사합니다


    9년 전 link
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.