Submission #734979

#TimeUsernameProblemLanguageResultExecution timeMemory
734979bin9638무지개나라 (APIO17_rainbow)C++17
11 / 100
17 ms852 KiB
#include <bits/stdc++.h> #ifndef SKY #include "rainbow.h" #endif // SKY using namespace std; #define N 200010 #define ll long long #define fs first #define sc second #define ii pair<ll,int> #define pb push_back int r,c,m; struct BIT { unordered_map<int,int>bit[N]; void update(int x,int y,int val) { x=r-x+1; y=c-y+1; for(int u=x;u>0;u-=u&(-u)) for(int v=y;v>0;v-=v&(-v)) bit[u][v]+=val; } int get(int x,int y) { x=r-x+1; y=c-y+1; int res=0; for(int u=x;u<=r;u+=u&(-u)) for(int v=y;v<=c;v+=v&(-v)) if(bit[u].find(v)!=bit[u].end()) res+=bit[u][v]; return res; } }; int top,bot,lef,righ,ktr[110][110],visited[110][110],times; vector<int>row={0,0,-1,1},col={-1,1,0,0}; void init(int RRR, int CCC, int sr, int sc, int MMM, char *S) { r=RRR; c=CCC; m=MMM; ktr[sr][sc]=1; for(int i=1;i<=m;i++) { char ch=*S; if(i!=m) S++; if(ch=='N') sr--; if(ch=='S') sr++; if(ch=='E') sc++; if(ch=='W') sc--; ktr[sr][sc]=1; //cout<<sr<<" "<<sc<<endl; } } bool check(int u,int v) { return(u>=top&&u<=bot&&v>=lef&&v<=righ&&ktr[u][v]==0&&visited[u][v]!=times); } void DFS(int u,int v) { visited[u][v]=times; for(int i=0;i<4;i++) if(check(u+row[i],v+col[i])) DFS(u+row[i],v+col[i]); } int colour(int ar, int ac, int br, int bc) { top=ar; bot=br; lef=ac; righ=bc; times++; int res=0; //cout<<ar<<" "<<ac<<" "<<br<<" "<<bc<<endl; for(int i=top;i<=bot;i++) for(int j=lef;j<=righ;j++) if(ktr[i][j]==0&&visited[i][j]!=times) { // cout<<i<<" "<<j<<endl; res++; DFS(i,j); } return res; } #ifdef SKY int main() { freopen("A.inp","r",stdin); freopen("A.out","w",stdout); ios::sync_with_stdio(0); cin.tie(NULL); cout.tie(NULL); int r,c,sr,sc,m; string S; cin>>r>>c>>sr>>sc>>m>>S; init(r,c,sr,sc,m,&S[0]); int q; cin>>q; while(q--) { int ar,ac,br,bc; cin>>ar>>ac>>br>>bc; cout<<colour(ar,ac,br,bc)<<endl; } return 0; } #endif
#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...