답안 #130636

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
130636 2019-07-15T18:57:22 Z tutis Amusement Park (JOI17_amusement_park) C++17
0 / 100
27 ms 3484 KB
#include "Joi.h"
#include <bits/stdc++.h>
typedef long long ll;
using namespace std;
void Joi(int N, int M, int A[], int B[], long long X, int T) {
	vector<int>PP(N);
	iota(PP.begin(), PP.end(), 0);
	shuffle(PP.begin(), PP.end(), mt19937_64(15651));
	int bitas[N];
	int t = 0;
	for (int i : PP)
	{
		bitas[i] = t;
		t = (t + 1) % 60;
	}
	for (int i = 0; i < N; i++)
	{
		int s = 0;
		if ((X & (1ll << bitas[i])) > 0)
			s = 1;
		MessageBoard(i, s);
	}
}
#include "Ioi.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
mt19937_64 rng(1561561);
long long Ioi(int N, int M, int A[], int B[], int P, int V, int T)
{
	vector<int>PP(N);
	iota(PP.begin(), PP.end(), 0);
	shuffle(PP.begin(), PP.end(), mt19937_64(15651));
	int bitas[N];
	int t = 0;
	for (int i : PP)
	{
		bitas[i] = t;
		t = (t + 1) % 60;
	}
	vector<int>adj[N];
	for (int i = 0; i < M; i++)
	{
		adj[A[i]].push_back(B[i]);
		adj[B[i]].push_back(A[i]);
	}
	for (int i = 0; i < N; i++)
		shuffle(adj[i].begin(), adj[i].end(), rng);
	set<int>aplankyti;
	set<int>bitai;
	ll X = 0;
	vector<int>stak = {P};
	while (true)
	{
		X |= V * (1ll << bitas[P]);
		bitai.insert(bitas[P]);
		aplankyti.insert(P);
		if (bitai.size() == 60)
			break;
		int v1 = -1;
		for (int j : adj[P])
			if (aplankyti.count(j) == false)
				v1 = j;
		if (v1 == -1)
		{
			v1 = stak.back();
			stak.pop_back();
		}
		else
		{
			stak.push_back(v1);
		}
		V = Move(v1);
		P = v1;
	}
	return X;
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 4 ms 848 KB Wrong Answer [7]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 27 ms 3336 KB Wrong Answer [7]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 4 ms 756 KB Wrong Answer [7]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 27 ms 3484 KB Wrong Answer [7]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 27 ms 3360 KB Wrong Answer [7]
2 Halted 0 ms 0 KB -