Submission #1226053

#TimeUsernameProblemLanguageResultExecution timeMemory
1226053ByeWorld보물 찾기 (CEOI13_treasure2)C++20
69 / 100
1 ms840 KiB
#include "treasure.h" #include <bits/stdc++.h> // #pragma GCC optimize("O3") #define ll long long #define se second #define fi first #define pb push_back #define lf (id<<1) #define rg ((id<<1)|1) #define md ((l+r)>>1) #define tre countTreasure using namespace std; typedef pair<int,int> pii; typedef pair<pii,pii> ipii; const int MAXN = 1e5+10; const int SQRT = 450; const int INF = 2e9; const int LOG = 20; void chmn(int &a, int b){ a = min(a, b); } void chmx(int &a, int b){ a = max(a, b); } int n, pr[1010][1010]; bool ada[1010][1010]; void findTreasure (int n) { for(int i=1; i<=n/2+1; i++){ for(int j=1; j<=n/2+1; j++){ pr[i][j] = tre(i,j, n,n); } } for(int i=1; i<=n/2; i++){ for(int j=1; j<=n/2; j++){ int th = pr[i][j]-pr[i+1][j]-pr[i][j+1]+pr[i+1][j+1]; if(th) ada[i][j] = 1; } } for(int i=1; i<=n/2+1; i++){ for(int j=n; j>=n/2; j--){ pr[i][j] = tre(i,1, n,j); } } for(int i=1; i<=n/2; i++){ for(int j=n; j>=n/2+1; j--){ int th = pr[i][j]-pr[i+1][j]-pr[i][j-1]+pr[i+1][j-1]; if(th) ada[i][j] = 1; } } for(int i=n; i>=n/2; i--){ for(int j=1; j<=n/2+1; j++){ pr[i][j] = tre(1,j, i,n); } } for(int i=n; i>=n/2+1; i--){ for(int j=1; j<=n/2; j++){ int th = pr[i][j]-pr[i-1][j]-pr[i][j+1]+pr[i-1][j+1]; if(th) ada[i][j] = 1; } } for(int i=n; i>=n/2; i--){ for(int j=n; j>=n/2; j--){ pr[i][j] = tre(1,1, i,j); } } for(int i=n; i>=n/2+1; i--){ for(int j=n; j>=n/2+1; j--){ int th = pr[i][j]-pr[i-1][j]-pr[i][j-1]+pr[i-1][j-1]; if(th) ada[i][j] = 1; } } // for(int i=1; i<=n; i++){ // for(int j=1; j<=n; j++){ // cout << ada[i][j]; // } // cout << '\n'; // } for(int i=1; i<=n; i++){ for(int j=1; j<=n; j++){ if(ada[i][j]){ Report(i, j); } } } }
#Verdict Execution timeMemoryGrader output
Fetching results...