제출 #43500

#제출 시각아이디문제언어결과실행 시간메모리
43500Hassoony보물 찾기 (CEOI13_treasure2)C++14
26 / 100
30 ms30628 KiB
#include<bits/stdc++.h> #include "treasure.h" using namespace std; typedef long long ll; const int MX=102; int grid[MX][MX],n; bool is[MX][MX][MX][MX]; void calc(int x1,int y1,int x2,int y2,int how){ if(how==(x2-x1+1)*(y2-y1+1)){ for(int i=x1;i<=x2;i++){ for(int j=y1;j<=y2;j++){ grid[i][j]=1; } } return; } if(!how)return; if(x1==x2&&y1==y2){ grid[x1][y1]=1; return; } if(x1==x2){ int mid=(y1+y2)/2; if(!is[x1][y1][x2][mid]){ int x=countTreasure(x1,y1,x2,mid); is[x1][y1][x2][mid]=1; calc(x1,y1,x2,mid,x); } if(mid+1>y2)return; if(!is[x1][mid+1][x2][y2]){ int x=countTreasure(x1,mid+1,x2,y2); is[x1][mid+1][x2][y2]=1; calc(x1,mid+1,x2,y2,x); } return; } int mid=(x1+x2)/2; if(!is[x1][y1][mid][y2]){ int x=countTreasure(x1,y1,mid,y2); is[x1][y1][mid][y2]=1; calc(x1,y1,mid,y2,x); } if(mid+1>x2)return; if(!is[mid+1][y1][x2][y2]){ int x=countTreasure(mid+1,y1,x2,y2); is[mid+1][y1][x2][y2]=1; calc(mid+1,y1,x2,y2,x); } } void findTreasure (int N) { n=N; int x=countTreasure(1,1,n,n); calc(1,1,n,n,x); for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ if(grid[i][j])Report(i,j); } } }

컴파일 시 표준 에러 (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...