답안 #30017

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
30017 2017-07-21T13:12:34 Z gabrielsimoes Amusement Park (JOI17_amusement_park) C++14
0 / 100
32 ms 7924 KB
#include <bits/stdc++.h>
#include "Joi.h"
using namespace std;

typedef long long ll;

static void solve2(int N, int M, int A[], int B[], ll X) {
	vector<bool> bits;
	while (X) {
		bits.push_back(X&1);
		X >>= 1;
	}

	reverse(bits.begin(), bits.end());

	for (int i = 0, k = 0; i < N; i++) {
		if (i+bits.size() < N) MessageBoard(i, 0);
		else MessageBoard(i, bits[k++]);
	}
}

static void solve3(int N, int M, int A[], int B[], ll X) {
	vector<bool> bits;
	while (X || bits.size() < 60) {
		bits.push_back(X&1);
		X >>= 1;
	}

	reverse(bits.begin(), bits.end());	

	for (int i = 0, k = 0; i < N; i++) {
		MessageBoard(i, bits[i%60]);
	}
}

void Joi(int N, int M, int A[], int B[], ll X, int T) {
	if (T <= 2) solve2(N,M,A,B,X);
	else if (T == 3) solve3(N,M,A,B,X);	
}
#include <bits/stdc++.h>
#include "Ioi.h"
using namespace std;

typedef long long ll;

const int MAXN = 100000;
static vector<int> g[MAXN];

static ll solve2(int N, int M, int A[], int B[], int P, int V) {
	vector<bool> val(N);
	vector<bool> visisted(N);

	val[P] = V;

	function<void(int)> dfs;
	dfs = [&](int cur) {
		visisted[cur] = true;
		for (int nx : g[cur]) {
			if (visisted[nx]) continue;
			val[nx] = Move(nx);
			dfs(nx);
			Move(cur);
		}
	};

	dfs(P);

	ll ans = 0;
	for (int i = 0; i < N; i++) {
		ans <<= 1;
		ans |= (int) val[i];
	}

	return ans;
}

static ll solve3(int N, int M, int A[], int B[], int P, int V) {
	int start = (P/60)*60;
	if (start + 59 >= N) start -= 60;

	while (P-1 > start)
		Move(--P);

	vector<bool> val(60);
	if (P == start) val[0] = V;
	else val[0] = Move(P = start);

	for (int i = 1; i < 60; i++)
		val[i] = Move(++P);

	ll ans = 0;
	for (int i = 0; i < 60; i++) {
		ans <<= 1;
		ans |= (int) val[i];
	}

	return ans;
}

ll 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]);
	}

	if (T <= 2) solve2(N,M,A,B,P,V);
	else if (T == 3) solve3(N,M,A,B,P,V);
	else return 0;
}

Compilation message

Joi.cpp: In function 'void solve2(int, int, int*, int*, ll)':
Joi.cpp:17:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   if (i+bits.size() < N) MessageBoard(i, 0);
                     ^
Joi.cpp: In function 'void solve3(int, int, int*, int*, ll)':
Joi.cpp:31:18: warning: unused variable 'k' [-Wunused-variable]
  for (int i = 0, k = 0; i < N; i++) {
                  ^

Ioi.cpp: In function 'll Ioi(int, int, int*, int*, int, int, int)':
Ioi.cpp:70:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 7100 KB Wrong Answer [7]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 32 ms 7924 KB Wrong Answer [7]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 7100 KB Wrong Answer [7]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 9 ms 7100 KB Wrong Answer [4]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 6 ms 7100 KB Wrong Answer [4]
2 Halted 0 ms 0 KB -