이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
//by szh
#include<bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define pii pair<int,int>
#define pll pair<long long,long long>
#define pb push_back
#define debug(x) cerr<<#x<<"="<<x<<endl
#define pq priority_queue
#define inf 0x3f
#define rep(i,a,b) for (int i=a;i<(b);i++)
#define MP make_pair
#define SZ(x) (int(x.size()))
#define ll long long
#define mod 1000000007
#define ALL(x) x.begin(),x.end()
void inc(int &a,int b) {a=(a+b)%mod;}
void dec(int &a,int b) {a=(a-b+mod)%mod;}
int lowbit(int x) {return x&(-x);}
ll p0w(ll base,ll p) {ll ret=1;while(p>0){if (p%2ll==1ll) ret=ret*base%mod;base=base*base%mod;p/=2ll;}return ret;}
#include "rainbow.h"
const int maxn = 55;
const int dx[4] = {0,-1,1,0}, dy[4] = {1,0,0,-1};
int grid[maxn][maxn];
int r,c;
void init(int R, int C, int sr, int sc, int M, char *S) {
r = R, c = C;
grid[sr][sc] = 1;
rep(i,0,M) {
if (S[i]=='S') sr++;
else if (S[i]=='E') sc++;
else if (S[i]=='W') sc--;
else sr--;
grid[sr][sc] = 1;
}
}
bool vis[maxn][maxn];
int colour(int ar, int ac, int br, int bc) {
int cnt = 0;
rep(i,ar,br+1) rep(j,ac,bc+1) vis[i][j] = grid[i][j];
rep(i,ar,br+1)
rep(j,ac,bc+1) {
if (vis[i][j]) continue;
cnt++;
vis[i][j] = 1;
queue <pii> q;
q.push({i,j});
while (!q.empty()) {
int x = q.front().fi, y = q.front().se;
q.pop();
rep(k,0,4) {
int nx = x+dx[k], ny = y+dy[k];
if (nx<ar or nx>br or ny<ac or ny>bc or vis[nx][ny]) continue;
vis[nx][ny] = 1;
q.push({nx,ny});
}
}
}
return cnt;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |