Submission #427265

# Submission time Handle Problem Language Result Execution time Memory
427265 2021-06-14T13:51:17 Z amunduzbaev Stray Cat (JOI20_stray) C++14
0 / 100
83 ms 14396 KB
#include "Anthony.h"
#include "bits/stdc++.h"
using namespace std;

#define ff first
#define ss second
#define pb push_back
#define sz(x) (int)x.size()

const int N = 2e4+5;

namespace sol1{
	
	vector<int> res;
	vector<int> patt = {1, 0, 0, 1, 1, 0};
	vector<pair<int, int>> edges[N];
	
	
	void dfs(int u, int p = -1, int cur = 0, int in = 0){
		for(auto x : edges[u]){
			if(x.ff == p) continue;
			if(sz(edges[u]) == 2){
				res[x.ss] = patt[in];
				dfs(x.ff, u, res[x.ss], (in + 1) % 6);
			} else {
				res[x.ss] = cur ^ 1;
				if(cur) dfs(x.ff, u, cur ^ 1, 0);
				else dfs(x.ff, u, cur ^ 1, 0);
			}
		}
	}
	
	vector<int> Mark1(int n, int m, int a, int b, vector<int> u, vector<int> v){
		res.resize(m);
		for(int i=0;i<m;i++){
			int a = u[i] + 1, b = v[i] + 1;
			edges[a].pb({b, i}), edges[b].pb({a, i});
			res[i] = -1;
		} 
		
		edges[1].pb({-1, -1});
		dfs(1);
		
		//~ for(int i=0;i<m;i++) cout<<res[i]<<" ";
		//~ cout<<"\n";
		
		return res;
	}
}

namespace sol2{
	vector<int> Mark2(int n, int m, int a, int b, vector<int> u, vector<int> v){
		return {};
	}
}

vector<int> Mark(int n, int m, int a, int b, vector<int> u, vector<int> v) {
	if(a == 2) {
		return sol1::Mark1(n, m, a, b, u, v);
	} else {
		return sol2::Mark2(n, m, a, b, u, v);
	}
}
#include "Catherine.h"
#include "bits/stdc++.h"
using namespace std;
#define pb push_back
#define sz(x) (int)x.size()

vector<int> path;
int a;

void Init(int a, int b) { ::a = a; }

namespace sol1{
	vector<int> ppat = {1, 1, 0, 1, 0, 0, 1, 1, 0, 1};
	int ok = 0, last = -1;
	vector<int> path;
	
	int Move(vector<int> y){
		if(ok){
			if(y[0] + y[1] + 1 > 2) return last ^= 1;
			if(y[0]) return last = 0;
			if(y[1]) return last = 1;
			return -1;
		}
		
		if(y[0] + y[1] + (~last) > 2){
			ok = 1;
			if(~last){
				if(min(y[0], y[1]) == 0) return -1;
				if(min(y[0], y[1]) == 1) return last ^= 1;
				assert(0);
			} else {
				if(y[0] == 1) return last = 0;
				if(y[1] == 1) return last = 1;
				assert(0);
			}
		} 
		
		if(y[0] + y[1] + (~last) == 1){
			ok = 1;
			if(y[0] == 1) return last = 0;
			if(y[1] == 1) return last = 1;
			return -1;
		}
		
		if(~last){
			if(y[0] == 1) path.pb(0), last = 0;
			else path.pb(1), last = 1;
		} else {
			if(y[0] == 2) path.pb(0), path.pb(0), last = 0;
			else if(y[1] == 2) path.pb(1), path.pb(1), last = 1;
			else path.pb(0), path.pb(1), last = 1;
		}
		
		if(sz(path) == 5){ ok = 1; 
			for(int i=0;i+5<=sz(ppat);i++){
				int l = i, r = i + 5 - 1, okk = 1;
				for(int j=l;j<=r;j++) okk &= (ppat[j] == path[j-i]);
				if(okk) return -1;
			} if(y[0]) return last = 0;
			else return last = 1;
		} else return last;
	} 
}

namespace sol2{
	int Move(vector<int> y){
		return 0;
	} 
}

int Move(vector<int> y) {
	if(a == 2) return sol1::Move(y);
	else return sol2::Move(y);
}
# Verdict Execution time Memory Grader output
1 Incorrect 7 ms 1460 KB Wrong Answer [1]
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 7 ms 1460 KB Wrong Answer [1]
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 6 ms 1380 KB Wrong Answer [1]
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 6 ms 1380 KB Wrong Answer [1]
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 1260 KB Output is correct
2 Correct 2 ms 1012 KB Output is correct
3 Correct 2 ms 1268 KB Output is correct
4 Correct 2 ms 1264 KB Output is correct
5 Correct 2 ms 1264 KB Output is correct
6 Incorrect 3 ms 1272 KB Wrong Answer [5]
7 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 45 ms 11176 KB Output is correct
2 Correct 56 ms 12896 KB Output is correct
3 Correct 2 ms 1048 KB Output is correct
4 Correct 40 ms 11520 KB Output is correct
5 Correct 72 ms 14396 KB Output is correct
6 Correct 65 ms 14316 KB Output is correct
7 Correct 45 ms 13488 KB Output is correct
8 Correct 47 ms 13584 KB Output is correct
9 Correct 83 ms 14368 KB Output is correct
10 Correct 75 ms 14376 KB Output is correct
11 Correct 62 ms 14320 KB Output is correct
12 Incorrect 48 ms 13432 KB Wrong Answer [5]
13 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 54 ms 11372 KB Output is correct
2 Correct 61 ms 12728 KB Output is correct
3 Correct 1 ms 1004 KB Output is correct
4 Correct 41 ms 11424 KB Output is correct
5 Correct 71 ms 14324 KB Output is correct
6 Incorrect 40 ms 13388 KB Wrong Answer [5]
7 Halted 0 ms 0 KB -