This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "rainbow.h"
#include <bits/stdc++.h>
using namespace std;
#define pii pair<int,int>
#define fs first
#define sc second
const int mxn = 2e5+10;
pii dir[] = {{0,1},{1,0},{1,1}};
vector<pii> v;
void init(int R, int C, int sr, int sc, int M, char *S) {
pii now = pii(sr,sc);
v.push_back(now);
for(int i = 0;i<M;i++){
if(S[i] == 'N')now.fs--;
else if(S[i] == 'S')now.fs++;
else if(S[i] == 'E')now.sc++;
else if(S[i] == 'W')now.sc--;
v.push_back(now);
}
sort(v.begin(),v.end());
v.resize(unique(v.begin(),v.end())-v.begin());
}
set<pii> st;
int colour(int ar, int ac, int br, int bc) {
vector<pii> vv;
for(auto &i:v){
if(i.fs<ar||i.fs>br||i.sc<ac||i.sc>bc)continue;
vv.push_back(i);
}
for(int i = ar-1;i<=br+1;i++){
vv.push_back(pii(i,ac-1));
vv.push_back(pii(i,bc+1));
}
for(int i = ac-1;i<=bc+1;i++){
vv.push_back(pii(ar-1,i));
vv.push_back(pii(br+1,i));
}
v = vv;
sort(v.begin(),v.end());
v.resize(unique(v.begin(),v.end())-v.begin());
for(auto &i:v)cerr<<i.fs<<','<<i.sc<<' ';cerr<<endl;
for(auto &i:v)st.insert(i);
int ecnt = 0,vcnt = 0;
vcnt = v.size();
for(auto &i:v){
if(st.find(pii(i.fs+1,i.sc)) != st.end())ecnt++;
if(st.find(pii(i.fs,i.sc+1)) != st.end())ecnt++;
}
int ans = 2+ecnt-vcnt;
cerr<<vcnt<<' '<<ecnt<<endl;
for(auto &i:v){
int c = 0;
for(auto &d:dir){
if(st.find(pii(i.fs+d.fs,i.sc+d.sc)) != st.end())c++;
}
if(c == 3)ans--;
}
return ans-1;
}
Compilation message (stderr)
rainbow.cpp: In function 'int colour(int, int, int, int)':
rainbow.cpp:46:2: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
46 | for(auto &i:v)cerr<<i.fs<<','<<i.sc<<' ';cerr<<endl;
| ^~~
rainbow.cpp:46:43: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
46 | for(auto &i:v)cerr<<i.fs<<','<<i.sc<<' ';cerr<<endl;
| ^~~~
# | 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... |