# |
제출 시각 |
아이디 |
문제 |
언어 |
결과 |
실행 시간 |
메모리 |
260840 |
2020-08-11T05:16:02 Z |
반딧불(#5074) |
길고양이 (JOI20_stray) |
C++17 |
|
46 ms |
15828 KB |
#include <bits/stdc++.h>
#include "Anthony.h"
using namespace std;
namespace {
int n, k;
vector<pair<int, int> > link[20002];
int col[20002];
int road[20002];
const int s[6] = {0, 0, 1, 0, 1, 1};
void dfs(int x, int par = -1, int cnt = 0){
if(par == -1){
for(auto &y: link[x]){
col[y.second] = s[cnt];
road[y.first] = y.second;
dfs(y.first, x, (cnt+1)%6);
}
return;
}
if((int)link[x].size() == 1) return;
if((int)link[x].size() == 2){
for(auto &y: link[x]){
if(par == y.first) continue;
col[y.second] = s[cnt];
road[y.first] = y.second;
dfs(y.first, x, (cnt+1)%6);
}
return;
}
if(col[road[x]]) cnt = 0;
else cnt = 2;
for(auto &y: link[x]){
if(par == y.first) continue;
col[y.second] = !col[road[x]];
dfs(y.first, x, cnt);
}
}
}
vector<int> Mark(int N, int M, int A, int B, vector<int> U, vector<int> V) {
n = N;
k = M;
for(int i=0; i<k; i++){
link[U[i]].push_back(make_pair(V[i], i));
link[V[i]].push_back(make_pair(U[i], i));
}
dfs(0);
return vector<int>(col, col+k);
}
#include <bits/stdc++.h>
#include "Catherine.h"
using namespace std;
namespace {
int a, b;
int prv = -1;
bool strange = 1;
int cnt = 0;
int s[] = {1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0};
vector<int> vb;
}
void Init(int A, int B) {
a = A;
b = B;
prv = -1, strange = 1;
}
int Move(vector<int> y) {
int c0 = y[0];
int c1 = y[1];
cnt++;
if(cnt > 6) strange = 0;
if(!strange){
if(!c0) return prv = 1;
if(!c1) return prv = 0;
if(c0 == 1) return prv = 0;
if(c1 == 1) return prv = 1;
fprintf(stderr, "nowhere to go; c0 >= 2, c1 >= 2");
exit(1);
}
else{
if(prv == 0) c0++;
if(prv == 1) c1++;
if(prv == -1){ /// ù ���� ���
if(c0 + c1 == 1){ /// �� ���� ��ۿ� ���� ���
strange = 0; /// ���� ���� ��������.
if(c0) return prv = 0; /// �װ� 0�̸� 0���� ����.
if(c1) return prv = 1; /// �װ� 1�̸� 1�� ����.
fprintf(stderr, "c0 + c1 == 1 but what is 1?");
exit(1); /// �Ͼ �� ���� ���� �Ͼ��!
}
if(c0 + c1 > 2){ /// ���� ���� ���� ���
strange = 0; /// ���� ��������!
if(c0 == 1) return prv = 0; /// 0�� 1���ۿ� ������ 0���� ����.
if(c1 == 1) return prv = 1; /// 1�� 1���ۿ� ������ 1�� ����.
fprintf(stderr, "c0 + c1 > 2 but what is 1?");
exit(1); /// �Ͼ �� ���� ���� �Ͼ��!
}
/// ���� c0 + c1 = 2�̴�.
if(c0 == 2){
vb.push_back(0);
vb.push_back(0);
return prv = 0; /// �� �� 0�̴ϱ� �׳� 0���� ����.
}
else if(c1 == 2){
vb.push_back(1);
vb.push_back(1);
return prv = 1; /// �� �� 1�̴ϱ� �׳� 1�� ����.
}
else{
vb.push_back(0);
vb.push_back(1);
return prv = 1; /// �׳� 1�� ����.
}
}
/// ù ���� �ƴ����� ������ �̽�½���� ���� �ִ� ����̴�.
if(c0 + c1 > 2){ /// ���� ���� ���� ���
strange = 0; /// ���� ��������!
if(c0 == 1) return prv = 0; /// 0�� 1���ۿ� ������ 0���� ����.
if(c1 == 1) return prv = 1; /// 1�� 1���ۿ� ������ 1�� ����.
fprintf(stderr, "c0 + c1 > 2 but what is 1?");
exit(1); /// �Ͼ �� ���� ���� �Ͼ��!
}
if(c0 + c1 == 1){ /// ���ٸ� ���� ���
strange = 0; /// �츮 ������ Ʋ������ ���ư���!
return -1;
}
/// ���� �̽�½����, ������ ������ �ڽ���.
vb.push_back(y[0] ? 0 : 1); /// �ϴ� vb �ڿ� ���� �� �ִ� ���� �߰��Ѵ�.
// for(auto &x: vb) printf("%d ", x);
// puts("");
bool possible = 0;
for(int i=0; i<6; i++){ /// ���� ��Ȳ�� �������� �Ǻ��Ѵ�.
bool different = 0;
for(int j=0; j<(int)vb.size(); j++){
if(s[i+j] != vb[j]){
different = 1;
break;
}
}
if(!different){
possible = 1;
break;
}
}
if(!possible){
strange = 0; /// ���� ��Ȳ�� �Ұ����ߴ�!
return -1; /// �ǵ��ư���.
}
return prv = y[0] ? 0 : 1; /// ���� �̽�½���� �ϴ� ��� �����Ѵ�.
}
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
44 ms |
15828 KB |
Wrong Answer [5] |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
44 ms |
15828 KB |
Wrong Answer [5] |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
46 ms |
13576 KB |
Wrong Answer [5] |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
46 ms |
13576 KB |
Wrong Answer [5] |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
2 ms |
1536 KB |
Wrong Answer [5] |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
43 ms |
11392 KB |
Wrong Answer [5] |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
41 ms |
11276 KB |
Wrong Answer [5] |
2 |
Halted |
0 ms |
0 KB |
- |