답안 #981646

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
981646 2024-05-13T12:18:40 Z pcc 무지개나라 (APIO17_rainbow) C++17
0 / 100
3000 ms 41780 KB
#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;
set<pii> st;

void init(int R, int C, int sr, int sc, int M, char *S) {
	st.clear();
	v.clear();
	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());
}


int colour(int ar, int ac, int br, int bc) {
	st.clear();
	vector<pii> vv;
	bool con = false;
	for(auto &i:v){
		if(i.fs<ar||i.fs>br||i.sc<ac||i.sc>bc)continue;
		if(i.fs == ar||i.fs == br||i.sc == ac||i.sc == bc)con = true;
		vv.push_back(i);
	}
	if(vv.empty())con = true;
	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));
	}
	swap(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--;
	}
	swap(v,vv);
	return ans-con;
}

# 결과 실행 시간 메모리 Grader output
1 Incorrect 18 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Execution timed out 3080 ms 24896 KB Time limit exceeded
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 348 KB Output is correct
2 Correct 222 ms 21188 KB Output is correct
3 Correct 231 ms 20532 KB Output is correct
4 Correct 195 ms 17872 KB Output is correct
5 Correct 106 ms 10320 KB Output is correct
6 Correct 321 ms 28472 KB Output is correct
7 Incorrect 486 ms 41780 KB Output isn't correct
8 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 18 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 18 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -