Submission #928649

# Submission time Handle Problem Language Result Execution time Memory
928649 2024-02-17T00:29:56 Z MilosMilutinovic Stray Cat (JOI20_stray) C++14
15 / 100
32 ms 15984 KB
#include "Anthony.h"
#include<bits/stdc++.h>
 
using namespace std;
 
namespace {
const int seq[]={1,0,1,1,0,0};
int n,tot;
int v[40005],nxt[40005],h[20005],d[20005],q[20005],idx[20005];
vector<int> ret;
 
void addedge(int x,int y){
	v[++tot]=y; nxt[tot]=h[x]; h[x]=tot;
	v[++tot]=x; nxt[tot]=h[y]; h[y]=tot;
}
 
void bfs(){
	for(int i=0;i<n;i++) d[i]=-1;
	int front=0,rear=0;
	q[rear++]=0; d[0]=0;
	while(front<rear){
		int x=q[front];
		for(int p=h[x];p;p=nxt[p]){
			if(d[v[p]]==-1){
				d[v[p]]=d[x]+1;
				q[rear++]=v[p];
			}
		}
		++front;
	}
}

void dfs(int x,int fa,int lst,int i){
	int ch=0;
	for(int p=h[x];p;p=nxt[p]) if(v[p]!=fa) ch++;
	if(ch==0) return;
	if(ch==1){
		for(int p=h[x];p;p=nxt[p]){
			if(v[p]==fa) continue;
			ret[idx[v[p]]]=(lst^seq[i]);
			dfs(v[p],x,lst,(i+1)%6);
		}
	}else{
		for(int p=h[x];p;p=nxt[p]){
			if(v[p]==fa) continue;
			ret[idx[v[p]]]=(x==0?0:ret[idx[x]])^1;
			dfs(v[p],x,x==0?0:ret[idx[x]],1);
		}
	}
}
}
 
vector<int> Mark(int n,int m,int a,int b,vector<int> u,vector<int> v){
	::n=n;
	for(int i=0;i<m;i++) addedge(u[i],v[i]);
	if(a>=3){
		bfs();
		vector<int> col(m);
		for(int i=0;i<m;i++) col[i]=min(d[u[i]],d[v[i]])%3;
		return col;
	}else{
		bfs();
		for(int i=0;i<m;i++){
			if(d[u[i]]>d[v[i]]) swap(u[i],v[i]);
			printf("veci dist ima %d\n",v[i]);
			idx[v[i]]=i;
		}
		ret.resize(m);
		dfs(0,0,0,0);
		return ret;
	}
	return vector<int>(m,0);
}
#include "Catherine.h"
#include<bits/stdc++.h>

#define pb push_back
 
using namespace std;
 
namespace {
 
int a,b;
bool up;
vector<int> edg;
}  // namespace
 
void Init(int A,int B){
	a=A; b=B;
	up=false;
}
 
int Move(vector<int> y){
	if(a>=3){
		int cnt=0;
		for(int i=0;i<a;i++) cnt+=(y[i]>0?1:0);
		if(cnt==1){
			for(int i=0;i<a;i++) if(y[i]>0) return i;
		}
		for(int i=0;i<a;i++){
			if(y[i]>0&&y[(i+1)%3]>0) return i;
		}
	}
	if(up){
		if(y[0]==0){
			edg.pb(1);
			return 1;
		}
		if(y[1]==0){
			edg.pb(0);
			return 0;
		}
		int t=edg.back();
		edg.pb(t^1);
		return t^1;
	}
	if(y[0]==0&&y[1]==0){
		up=true;
		edg.pb(edg.back());
		return -1;
	}
	if(y[0]==0){
		edg.pb(1);
		return 1;
	}
	edg.pb(0);
	return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 26 ms 14960 KB Output is correct
2 Correct 0 ms 792 KB Output is correct
3 Correct 22 ms 14184 KB Output is correct
4 Correct 32 ms 15920 KB Output is correct
5 Correct 32 ms 15984 KB Output is correct
6 Correct 26 ms 14704 KB Output is correct
7 Correct 24 ms 14720 KB Output is correct
8 Correct 30 ms 15412 KB Output is correct
9 Correct 31 ms 15428 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 26 ms 14960 KB Output is correct
2 Correct 0 ms 792 KB Output is correct
3 Correct 22 ms 14184 KB Output is correct
4 Correct 32 ms 15920 KB Output is correct
5 Correct 32 ms 15984 KB Output is correct
6 Correct 26 ms 14704 KB Output is correct
7 Correct 24 ms 14720 KB Output is correct
8 Correct 30 ms 15412 KB Output is correct
9 Correct 31 ms 15428 KB Output is correct
10 Correct 23 ms 12796 KB Output is correct
11 Correct 24 ms 12912 KB Output is correct
12 Correct 23 ms 12924 KB Output is correct
13 Correct 23 ms 12912 KB Output is correct
14 Correct 24 ms 13160 KB Output is correct
15 Correct 27 ms 13424 KB Output is correct
16 Correct 28 ms 15480 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 24 ms 12472 KB Output is correct
2 Correct 0 ms 796 KB Output is correct
3 Correct 22 ms 11892 KB Output is correct
4 Correct 32 ms 13684 KB Output is correct
5 Correct 31 ms 13932 KB Output is correct
6 Correct 24 ms 12408 KB Output is correct
7 Correct 24 ms 12412 KB Output is correct
8 Correct 28 ms 13240 KB Output is correct
9 Correct 28 ms 13168 KB Output is correct
10 Correct 26 ms 12916 KB Output is correct
11 Correct 26 ms 12920 KB Output is correct
12 Correct 26 ms 12928 KB Output is correct
13 Correct 26 ms 12928 KB Output is correct
14 Correct 28 ms 13296 KB Output is correct
15 Correct 31 ms 13188 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 24 ms 12472 KB Output is correct
2 Correct 0 ms 796 KB Output is correct
3 Correct 22 ms 11892 KB Output is correct
4 Correct 32 ms 13684 KB Output is correct
5 Correct 31 ms 13932 KB Output is correct
6 Correct 24 ms 12408 KB Output is correct
7 Correct 24 ms 12412 KB Output is correct
8 Correct 28 ms 13240 KB Output is correct
9 Correct 28 ms 13168 KB Output is correct
10 Correct 26 ms 12916 KB Output is correct
11 Correct 26 ms 12920 KB Output is correct
12 Correct 26 ms 12928 KB Output is correct
13 Correct 26 ms 12928 KB Output is correct
14 Correct 28 ms 13296 KB Output is correct
15 Correct 31 ms 13188 KB Output is correct
16 Correct 21 ms 10876 KB Output is correct
17 Correct 21 ms 10860 KB Output is correct
18 Correct 24 ms 10864 KB Output is correct
19 Correct 22 ms 11116 KB Output is correct
20 Correct 24 ms 11492 KB Output is correct
21 Correct 26 ms 11480 KB Output is correct
22 Correct 27 ms 13436 KB Output is correct
23 Correct 22 ms 11116 KB Output is correct
24 Correct 22 ms 11132 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 808 KB Program didn't exit properly, or you printed something to stdout.
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 9 ms 3388 KB Program didn't exit properly, or you printed something to stdout.
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 9 ms 3328 KB Program didn't exit properly, or you printed something to stdout.
2 Halted 0 ms 0 KB -