Submission #1117088

#TimeUsernameProblemLanguageResultExecution timeMemory
1117088hyakupLand of the Rainbow Gold (APIO17_rainbow)C++17
11 / 100
9 ms764 KiB
#include "rainbow.h" #include <bits/stdc++.h> using namespace std; #define bug(x) cout << #x << " " << x << endl; const int maxn = 60; const int inf = 1e9; int marc[maxn][maxn]; int n, m, q; int di[] = { 0, 1, 0, -1 }; int dj[] = { 1, 0, -1, 0 }; void init(int R, int C, int sr, int sc, int M, char *S) { n = R, m = C; marc[sr][sc] = inf; for( int i = 0; i < M; i++ ){ char c = S[i]; if( c == 'N' ) sr--; if( c == 'S' ) sr++; if( c == 'W' ) sc--; if( c == 'E' ) sc++; marc[sr][sc] = inf; } } int linha1, linha2, coluna1, coluna2; bool in_bounds( int i, int j ){ return linha1 <= i && i <= linha2 && coluna1 <= j && j <= coluna2; } void dfs( int i, int j ){ // bug(i); // bug(j); marc[i][j] = q; for( int d = 0; d < 4; d++ ) if( marc[i + di[d]][j + dj[d]] < q && in_bounds( i + di[d], j + dj[d] ) ) dfs( i + di[d], j + dj[d] ); } int colour(int ar, int ac, int br, int bc) { linha1 = ar; coluna1 = ac; linha2 = br; coluna2 = bc; q++; // bug(ar); // bug(ac); // bug(br); // bug(bc); int resp = 0; for( int i = ar; i <= br; i++ ) for( int j = ac; j <= bc; j++ ){ // cout << i << " " << j << " " << marc[i][j] << endl; if( marc[i][j] < q ){ resp++; dfs( i, j ); } } return resp; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...