제출 #42490

#제출 시각아이디문제언어결과실행 시간메모리
42490nonocut보물 찾기 (CEOI13_treasure2)C++14
36 / 100
2 ms804 KiB
#include "treasure.h"
#include<bits/stdc++.h>
using namespace std;

int s1[105][105], s2[105][105], s3[105][105], s4[105][105];
int a[105][105];

void findTreasure (int N) {
    //section1
    for(int i=1;i<=N/2+2;i++) {
        for(int j=1;j<=N/2+1;j++) {
            s1[i][j] = countTreasure(i,j,N,N);
        }
    }
    //section 2
    for(int i=N/2;i<=N;i++) {
        for(int j=1;j<=N/2+1;j++) {
            s2[i][j] = countTreasure(1,j,i,N);
        }
    }
    //section 3
    for(int i=1;i<=N/2+1;i++) {
        for(int j=N/2;j<=N;j++) {
            s3[i][j] = countTreasure(i,1,N,j);
        }
    }
    //section 4
    for(int i=N/2;i<=N;i++) {
        for(int j=N/2;j<=N;j++) {
            s4[i][j] = countTreasure(1,1,i,j);
        }
    }
    for(int i=1;i<=N;i++) {
        for(int j=1;j<=N;j++) {
            if(i<=N/2 && j<=N/2) a[i][j] = s1[i][j] - s1[i+1][j] - s1[i][j+1] + s1[i+1][j+1];
            if(i>=N/2+1 && j<=N/2) a[i][j] = s2[i][j] - s2[i-1][j] - s2[i][j+1] + s2[i-1][j+1];
            if(i<=N/2 && j>=N/2+1) a[i][j] = s3[i][j] - s3[i+1][j] - s3[i][j-1] + s3[i+1][j-1];
            if(i>=N/2+1 && j>=N/2+1) a[i][j] = s4[i][j] - s4[i-1][j] - s4[i][j-1] + s4[i-1][j-1];
            if(a[i][j]) Report(i,j);
//            printf("%d",a[i][j]);
        }
//        printf("\n");
    }
}

컴파일 시 표준 에러 (stderr) 메시지

grader.c: In function 'int main()':
grader.c:63:34: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         my_assert(strlen(A[i]+1) == N, "each line of the map must contain N zeroes or ones (before loop)");
                                  ^
#Verdict Execution timeMemoryGrader output
Fetching results...