답안 #514708

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
514708 2022-01-18T11:54:15 Z amunduzbaev Amusement Park (JOI17_amusement_park) C++14
0 / 100
26 ms 4688 KB
#include "bits/stdc++.h"
using namespace std;
#include "Joi.h"

const int N = 1e4 + 5;
vector<int> G[N], tt;
int used[N], d[N];

void dfs(int u){
	used[u] = 1;
	tt.push_back(u);
	for(auto x : G[u]){
		if(used[x]) continue;
		d[x] = d[u] + 1;
		dfs(x);
	}
}

void Joi(int n, int m, int a[], int b[], long long x, int t) {
	for(int i=0;i<m;i++){
		G[a[i]].push_back(b[i]);
		G[b[i]].push_back(a[i]);
	} for(int i=0;i<n;i++){
		sort(G[i].begin(), G[i].end());
	}
	
	d[0] = 1; dfs(0);
	bool ok = 0;
	for(int i=0;i<n;i++){
		if(d[i] >= 60){
			ok = 1;
		} d[i] = (d[i] - 1) % 60;
	}
	
	if(ok){
		for(int i=0;i<n;i++){;
			MessageBoard(i, x >> d[i] & 1);
		}
	} else {
		for(int i=0;i<min(n, 60);i++){
			MessageBoard(tt[i], x >> i & 1);
		} for(int i=60;i<n;i++){
			MessageBoard(tt[i], 0);
		}
	}
}
#include "bits/stdc++.h"
using namespace std;
#include "Ioi.h"

const int N = 1e4 + 5;
int used[N], par[N], d[N];
vector<int> G[N], tt;

void dfs(int u){
	used[u] = 1;
	tt.push_back(u);
	for(auto x : G[u]){
		if(used[x]) continue;
		d[x] = d[u] + 1, 
		par[x] = u, dfs(x);
		tt.push_back(u);
	}
}

long long Ioi(int n, int m, int a[], int b[], int p, int v, int t){
	for(int i=0;i<m;i++){
		G[a[i]].push_back(b[i]);
		G[b[i]].push_back(a[i]);
	} for(int i=0;i<n;i++){
		sort(G[i].begin(), G[i].end());
	}
	
	d[0] = 1; dfs(0);
	int r = -1;
	for(int i=0;i<n;i++){
		if(d[i] >= 60) r = i;
	}
	
	auto go = [&](int x){ bool ok = 0;
		for(auto v : G[p]){
			if(v == x) ok = 1;
		} assert(ok);
		
		v = Move(x), p = x;
	};
	
	long long x = 0;
	if(~r){
		if(d[p] >= 60){
			for(int j=0;j<60;j++){ d[p] = (d[p] - 1) % 60;
				if(v) x |= (1ll << d[p]);
				if(p) go(par[p]);
			} return x;
		} else { tt.clear();
			while(p) go(par[p]);
			while(r) tt.push_back(r), r = par[r];
			for(int i=0;i<60;i++){ d[p] = (d[p] - 1) % 60;
				if(v) x |= (1ll << d[p]);
				if(tt.empty()){
					go(tt.back());
					tt.pop_back();
				}
			} return x;
		}
	}
	
	while(p) go(par[p]);
	
	memset(used, 0, sizeof used);
	int cnt = 1; used[0] = 1;
	assert(!tt[0]);
	x |= v;
	tt.erase(tt.begin(), tt.begin() + 1);
	
	for(auto u : tt){
		go(u);
		if(used[u]) continue;
		if(v) x |= (1ll << cnt);
		used[u] = 1; cnt++;
		if(cnt == 60) break;
	}
	
	return x;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 1128 KB Output is correct
2 Correct 2 ms 1124 KB Output is correct
3 Correct 2 ms 1132 KB Output is correct
4 Incorrect 1 ms 1000 KB Wrong Answer [7]
5 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 20 ms 4532 KB Output is correct
2 Correct 19 ms 4540 KB Output is correct
3 Correct 20 ms 4548 KB Output is correct
4 Correct 12 ms 2988 KB Output is correct
5 Correct 13 ms 3596 KB Output is correct
6 Correct 11 ms 3488 KB Output is correct
7 Correct 11 ms 3516 KB Output is correct
8 Correct 11 ms 3512 KB Output is correct
9 Correct 12 ms 3492 KB Output is correct
10 Correct 11 ms 3108 KB Output is correct
11 Correct 13 ms 2988 KB Output is correct
12 Correct 11 ms 2856 KB Output is correct
13 Correct 11 ms 2824 KB Output is correct
14 Correct 12 ms 2940 KB Output is correct
15 Correct 12 ms 2980 KB Output is correct
16 Correct 11 ms 3000 KB Output is correct
17 Correct 12 ms 2988 KB Output is correct
18 Correct 14 ms 2968 KB Output is correct
19 Correct 12 ms 2992 KB Output is correct
20 Correct 9 ms 3700 KB Output is correct
21 Correct 10 ms 3620 KB Output is correct
22 Incorrect 12 ms 3244 KB Wrong Answer [7]
23 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 1012 KB Wrong Answer [7]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 24 ms 4512 KB Output is correct
2 Correct 20 ms 4580 KB Output is correct
3 Correct 20 ms 4652 KB Output is correct
4 Correct 12 ms 2984 KB Output is correct
5 Correct 12 ms 4004 KB Output is correct
6 Incorrect 14 ms 3556 KB Wrong Answer [7]
7 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 26 ms 4688 KB Output is correct
2 Correct 22 ms 4640 KB Output is correct
3 Correct 20 ms 4576 KB Output is correct
4 Incorrect 13 ms 2996 KB Output isn't correct
5 Halted 0 ms 0 KB -