답안 #514703

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
514703 2022-01-18T11:47:22 Z amunduzbaev Amusement Park (JOI17_amusement_park) C++14
0 / 100
35 ms 4604 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;
	}
	
	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) v = Move(par[p]), p = par[p];
			} return x;
		} else { tt.clear();
			while(p) v = Move(par[p]), p = 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()){
					v = Move(tt.back()), p = tt.back(); 
					tt.pop_back();
				}
			} return x;
		}
	}
	
	while(p) v = Move(par[p]), p = 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){
		bool ok = 0;
		for(auto x : G[p]){
			if(x == u) ok = 1;
		} assert(ok);
		
		p = u, v = Move(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 1 ms 1144 KB Output is correct
3 Correct 2 ms 1132 KB Output is correct
4 Incorrect 2 ms 1000 KB Wrong Answer [7]
5 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 27 ms 4536 KB Output is correct
2 Correct 25 ms 4604 KB Output is correct
3 Correct 22 ms 4592 KB Output is correct
4 Correct 13 ms 3068 KB Output is correct
5 Correct 14 ms 3500 KB Output is correct
6 Correct 13 ms 3528 KB Output is correct
7 Correct 13 ms 3436 KB Output is correct
8 Correct 13 ms 3476 KB Output is correct
9 Correct 14 ms 3488 KB Output is correct
10 Correct 13 ms 2968 KB Output is correct
11 Correct 14 ms 3024 KB Output is correct
12 Correct 12 ms 2864 KB Output is correct
13 Correct 16 ms 2984 KB Output is correct
14 Correct 16 ms 2980 KB Output is correct
15 Correct 13 ms 2992 KB Output is correct
16 Correct 14 ms 2932 KB Output is correct
17 Correct 13 ms 3004 KB Output is correct
18 Correct 12 ms 2968 KB Output is correct
19 Correct 12 ms 3000 KB Output is correct
20 Correct 9 ms 3692 KB Output is correct
21 Correct 9 ms 3640 KB Output is correct
22 Incorrect 12 ms 3280 KB Wrong Answer [7]
23 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 1000 KB Wrong Answer [7]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 27 ms 4464 KB Output is correct
2 Correct 27 ms 4584 KB Output is correct
3 Correct 20 ms 4528 KB Output is correct
4 Correct 13 ms 3000 KB Output is correct
5 Correct 12 ms 3968 KB Output is correct
6 Incorrect 13 ms 3496 KB Wrong Answer [7]
7 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 22 ms 4524 KB Output is correct
2 Correct 24 ms 4588 KB Output is correct
3 Correct 35 ms 4524 KB Output is correct
4 Incorrect 18 ms 2988 KB Output isn't correct
5 Halted 0 ms 0 KB -