제출 #536656

#제출 시각아이디문제언어결과실행 시간메모리
536656ammar2000무지개나라 (APIO17_rainbow)C++17
11 / 100
15 ms828 KiB
#include "rainbow.h" #include<bits/stdc++.h> #define ll long long #define pb push_back #define F first //#define S second #define coy cout<<"YES\n" #define con cout<<"NO\n" #define co1 cout<<"-1\n" #define sc(x) scanf("%lld",&x) #define all(x) x.begin(),x.end() #define fast ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); using namespace std; const int SI=3e5+7; ll INF=8e18+7; int dx[] = {1 , -1 , 0 , 0}; int dy[] = {0 , 0 , 1 , -1}; int MOD=1e9+7; ll n,m,g[55][55]; ll vis[55][55],col; ll u,l,d,r; bool valid(int x,int y) { return x>=u&&x<=d&&y>=l&&y<=r&&g[x][y]==0&&vis[x][y]!=col; } void dfs(int x,int y) { // cout <<x<<" "<<y<<"\n"; vis[x][y]=col; for (int i=0;i<4;i++) { if (valid(x+dx[i],y+dy[i])) dfs(x+dx[i],y+dy[i]); } } void init(int R, int C, int sr, int sc, int M, char *S) { n=R,m=C; g[sr][sc]=1; for (int i=0;i<M;i++) { if (S[i]=='N') sr--; else if (S[i]=='S') sr++; else if (S[i]=='E') sc++; else sc--; g[sr][sc]=1; } } int colour(int ar, int ac, int br, int bc) { col++; u=ar,l=ac,d=br,r=bc; ll ret=0; for (int i=ar;i<=br;i++) for (int u=ac;u<=bc;u++) { if (vis[i][u]!=col&&g[i][u]==0) ret++,dfs(i,u); } return ret; }
#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...