Submission #444860

# Submission time Handle Problem Language Result Execution time Memory
444860 2021-07-15T16:02:21 Z kig9981 Stray Cat (JOI20_stray) C++17
15 / 100
59 ms 16392 KB
#include "Anthony.h"
#include <bits/stdc++.h>
 
#ifdef NON_SUBMIT
#define TEST(n) (n)
#define tout cerr
#else
#define TEST(n) ((void)0)
#define tout cin
#endif
 
using namespace std;
 
vector<pair<int,int>> adj[20000];
int dist[20000];
 
std::vector<int> Mark(int N, int M, int A, int B, std::vector<int> U, std::vector<int> V) {
	vector<int> X(M,-1);
	queue<pair<int,int>> Q;
	memset(dist,-1,sizeof(dist));
	for(int i=0;i<M;i++) {
		adj[U[i]].emplace_back(V[i],i);
		adj[V[i]].emplace_back(U[i],i);
	}
	dist[0]=0;
	for(auto[n,t]: adj[0]) {
		dist[n]=1;
		Q.emplace(n,X[t]=0);
	}
	while(!Q.empty()) {
		auto[c,p]=Q.front();
		Q.pop();
		for(auto[n,t]: adj[c]) {
			if(dist[n]==-1) {
				dist[n]=dist[c]+1;
				if(A==2) {
					if(X[p]>1) {
						if(adj[c].size()==2) X[t]=(X[p]-1)%6+2;
						else X[t]=!(X[p]==3 || X[p]==6 || X[p]==7);
					}
					else {
						if(adj[c].size()==2) X[t]=X[p]+3;
						else X[t]=X[p]^1;
					}
				}
				else X[t]=min(dist[c],dist[n])%3;
				Q.emplace(n,t);
			}
			else if(X[t]==-1) X[t]=min(dist[c],dist[n])%3;
		}
		if(A==2 && X[p]>1) X[p]=X[p]==3 || X[p]==6 || X[p]==7;
	}
	return X;
}
#include "Catherine.h"
#include <bits/stdc++.h>
 
#ifdef NON_SUBMIT
#define TEST(n) (n)
#define tout cerr
#else
#define TEST(n) ((void)0)
#define tout cin
#endif
 
using namespace std;
 
int A, r;
bool d;
string s;

void Init(int A, int B) {
	::A=A;
	r=-1; d=false; s="";
}
 
int Move(std::vector<int> y) {
	if(r!=-1) y[r]++;
	if(A==2) {
		if(d) {
			for(int i=0;i<2;i++) if(y[i]==1 && y[i]-(i==r)==1) return r=i;
		}
		else {
			if(y[0]+y[1]>1) {
				d=true;
				if(r!=-1 && --y[r]==0) return -1;
				else {
					for(int i=0;i<2;i++) if(y[i]==1 && y[i]+(i==r)==1) return r=i;
				}
			}
			if(s.size()==6) {
				d=true;
				for(int i=0;i<6;i++) {
					bool valid=true;
					for(int j=0;j<4;j++) valid&=s[(i+j)%6]=='0'+j/2;
					if(valid) {
						for(int i=0;i<2;i++) if(y[i]==1 && y[i]-(i==r)==1) return r=i;
					}
				}
				return -1;
			}
			y[r]--;
			for(int i=0;i<2;i++) if(y[i]) {
				s.push_back('0'+i);
				return r=i;
			}
		}
	}
	else {
		for(int i=0;i<3;i++) if(y[i]==0 && y[(i+1)%3]==0) return r=(i+2)%3;
		for(int i=0;i<3;i++) if(y[i]==0) return r=(i+1)%3;
	}
}

Compilation message

Catherine.cpp: In function 'int Move(std::vector<int>)':
Catherine.cpp:59:1: warning: control reaches end of non-void function [-Wreturn-type]
   59 | }
      | ^
# Verdict Execution time Memory Grader output
1 Correct 46 ms 15432 KB Output is correct
2 Correct 1 ms 1128 KB Output is correct
3 Correct 38 ms 14844 KB Output is correct
4 Correct 56 ms 16392 KB Output is correct
5 Correct 56 ms 16324 KB Output is correct
6 Correct 45 ms 15148 KB Output is correct
7 Correct 44 ms 15120 KB Output is correct
8 Correct 54 ms 15832 KB Output is correct
9 Correct 51 ms 15888 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 46 ms 15432 KB Output is correct
2 Correct 1 ms 1128 KB Output is correct
3 Correct 38 ms 14844 KB Output is correct
4 Correct 56 ms 16392 KB Output is correct
5 Correct 56 ms 16324 KB Output is correct
6 Correct 45 ms 15148 KB Output is correct
7 Correct 44 ms 15120 KB Output is correct
8 Correct 54 ms 15832 KB Output is correct
9 Correct 51 ms 15888 KB Output is correct
10 Correct 40 ms 13192 KB Output is correct
11 Correct 40 ms 13388 KB Output is correct
12 Correct 40 ms 13312 KB Output is correct
13 Correct 39 ms 13316 KB Output is correct
14 Correct 41 ms 13580 KB Output is correct
15 Correct 46 ms 13924 KB Output is correct
16 Correct 49 ms 15904 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 45 ms 12940 KB Output is correct
2 Correct 2 ms 1132 KB Output is correct
3 Correct 38 ms 12628 KB Output is correct
4 Correct 59 ms 14192 KB Output is correct
5 Correct 53 ms 14228 KB Output is correct
6 Correct 42 ms 12936 KB Output is correct
7 Correct 42 ms 13008 KB Output is correct
8 Correct 48 ms 13732 KB Output is correct
9 Correct 49 ms 13616 KB Output is correct
10 Correct 46 ms 13376 KB Output is correct
11 Correct 46 ms 13372 KB Output is correct
12 Correct 46 ms 13248 KB Output is correct
13 Correct 45 ms 13388 KB Output is correct
14 Correct 49 ms 13724 KB Output is correct
15 Correct 48 ms 13580 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 45 ms 12940 KB Output is correct
2 Correct 2 ms 1132 KB Output is correct
3 Correct 38 ms 12628 KB Output is correct
4 Correct 59 ms 14192 KB Output is correct
5 Correct 53 ms 14228 KB Output is correct
6 Correct 42 ms 12936 KB Output is correct
7 Correct 42 ms 13008 KB Output is correct
8 Correct 48 ms 13732 KB Output is correct
9 Correct 49 ms 13616 KB Output is correct
10 Correct 46 ms 13376 KB Output is correct
11 Correct 46 ms 13372 KB Output is correct
12 Correct 46 ms 13248 KB Output is correct
13 Correct 45 ms 13388 KB Output is correct
14 Correct 49 ms 13724 KB Output is correct
15 Correct 48 ms 13580 KB Output is correct
16 Correct 37 ms 11524 KB Output is correct
17 Correct 37 ms 11508 KB Output is correct
18 Correct 38 ms 11436 KB Output is correct
19 Correct 38 ms 11468 KB Output is correct
20 Correct 49 ms 12020 KB Output is correct
21 Correct 41 ms 11800 KB Output is correct
22 Correct 47 ms 13720 KB Output is correct
23 Correct 39 ms 11512 KB Output is correct
24 Correct 40 ms 11468 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 1124 KB Wrong Answer [2]
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 9 ms 2256 KB Wrong Answer [2]
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 9 ms 2212 KB Wrong Answer [2]
2 Halted 0 ms 0 KB -