답안 #300181

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
300181 2020-09-16T22:17:57 Z mode149256 Broken Device (JOI17_broken_device) C++14
51 / 100
66 ms 3584 KB
/*input

*/
#include <bits/stdc++.h>
#include "Annalib.h"
using namespace std;

namespace my_template {
typedef long long ll;
typedef long double ld;
typedef complex<ld> cd;

typedef pair<int, int> pi;
typedef pair<ll, ll> pl;
typedef pair<ld, ld> pd;

typedef vector<int> vi;
typedef vector<vi> vii;
typedef vector<ld> vd;
typedef vector<ll> vl;
typedef vector<vl> vll;
typedef vector<pi> vpi;
typedef vector<vpi> vpii;
typedef vector<pl> vpl;
typedef vector<cd> vcd;
typedef vector<pd> vpd;
typedef vector<bool> vb;
typedef vector<vb> vbb;
typedef std::string str;
typedef std::vector<str> vs;

#define x first
#define y second
#define debug(...) cout<<"["<<#__VA_ARGS__<<": "<<__VA_ARGS__<<"]\n"

const ld PI = 3.14159265358979323846264338327950288419716939937510582097494L;

template<typename T>
pair<T, T> operator+(const pair<T, T> &a, const pair<T, T> &b) { return pair<T, T>(a.x + b.x, a.y + b.y); }
template<typename T>
pair<T, T> operator-(const pair<T, T> &a, const pair<T, T> &b) { return pair<T, T>(a.x - b.x, a.y - b.y); }
template<typename T>
T operator*(const pair<T, T> &a, const pair<T, T> &b) { return (a.x * b.x + a.y * b.y); }
template<typename T>
T operator^(const pair<T, T> &a, const pair<T, T> &b) { return (a.x * b.y - a.y * b.x); }

template<typename T>
void print(vector<T> vec, string name = "") {
	cout << name;
	for (auto u : vec)
		cout << u << ' ';
	cout << '\n';
}
}
using namespace my_template;

const int MOD = 1000000007;
const ll INF = std::numeric_limits<ll>::max();
const int MX = 100101;

void Anna(int N, ll X, int K, int P[] ) {
	vi geras(N, 1);
	for (int i = 0; i < K; ++i)
		geras[P[i]] = 0;

	vi x;
	for (int i = 0; X; ++i)
	{
		x.emplace_back(X & 1ll);
		X >>= 1;
	}

	for (int i = 0; i < 100; ++i)
		x.emplace_back(0);

	int j = 0;
	for (int i = 0; i < N; i += 3) {
		if (i + 2 >= N) {
			Set(i, 0);
			if (i + 1 < N)
				Set(i + 1, 0);
			continue;
		}

		// printf("i = %d ", i);
		if (!geras[i] + !geras[i + 1] + !geras[i + 2] >= 2) {
			Set(i, 0);
			Set(i + 1, 0);
			Set(i + 2, 0);
			// printf("ner\n");
		} else if (!geras[i] + !geras[i + 1] + !geras[i + 2] == 0) {
			int c = x[j++] << 1;
			c += x[j++];
			if (c == 0) {
				Set(i, 0);
				Set(i + 1, 1);
				Set(i + 2, 1);
			} else if (c == 1) {
				Set(i, 1);
				Set(i + 1, 0);
				Set(i + 2, 1);
			} else if (c == 2) {
				Set(i + 0, 1);
				Set(i + 1, 1);
				Set(i + 2, 0);
			} else {
				Set(i + 0, 1);
				Set(i + 1, 1);
				Set(i + 2, 1);
			}
			// printf("%d%d\n", x[j - 2], x[j - 1]);
		} else {
			if (!geras[i + 2] and x[j] == 0) {
				Set(i, 0);
				Set(i + 1, 0);
				Set(i + 2, 0);
				// printf("ner\n");
			} else if (x[j] == 1) {
				if (geras[i + 1]) {
					Set(i, 0);
					Set(i + 1, 1);
					Set(i + 2, 0);
				} else {
					Set(i, 1);
					Set(i + 1, 0);
					Set(i + 2, 0);
				}
				// printf("%d\n", x[j]);
				j++;
			} else {
				// geras[i+2] == 1
				Set(i, 0);
				Set(i + 1, 0);
				Set(i + 2, 1);
				// printf("%d\n", x[j]);
				j++;
			}
		}
	}
	// printf("in Anna j = %d, lg = %d\n", j, LG);
	// assert(j == LG);
}
/*input

*/
#include <bits/stdc++.h>
#include "Brunolib.h"
using namespace std;

namespace my_template {
typedef long long ll;
typedef long double ld;
typedef complex<ld> cd;

typedef pair<int, int> pi;
typedef pair<ll, ll> pl;
typedef pair<ld, ld> pd;

typedef vector<int> vi;
typedef vector<vi> vii;
typedef vector<ld> vd;
typedef vector<ll> vl;
typedef vector<vl> vll;
typedef vector<pi> vpi;
typedef vector<vpi> vpii;
typedef vector<pl> vpl;
typedef vector<cd> vcd;
typedef vector<pd> vpd;
typedef vector<bool> vb;
typedef vector<vb> vbb;
typedef std::string str;
typedef std::vector<str> vs;

#define x first
#define y second
#define debug(...) cout<<"["<<#__VA_ARGS__<<": "<<__VA_ARGS__<<"]\n"

const ld PI = 3.14159265358979323846264338327950288419716939937510582097494L;

template<typename T>
pair<T, T> operator+(const pair<T, T> &a, const pair<T, T> &b) { return pair<T, T>(a.x + b.x, a.y + b.y); }
template<typename T>
pair<T, T> operator-(const pair<T, T> &a, const pair<T, T> &b) { return pair<T, T>(a.x - b.x, a.y - b.y); }
template<typename T>
T operator*(const pair<T, T> &a, const pair<T, T> &b) { return (a.x * b.x + a.y * b.y); }
template<typename T>
T operator^(const pair<T, T> &a, const pair<T, T> &b) { return (a.x * b.y - a.y * b.x); }

template<typename T>
void print(vector<T> vec, string name = "") {
	cout << name;
	for (auto u : vec)
		cout << u << ' ';
	cout << '\n';
}
}
using namespace my_template;

const int MOD = 1000000007;
const ll INF = std::numeric_limits<ll>::max();
const int MX = 100101;

long long Bruno(int N, int A[] ) {
	ll ats = 0;
	int b = 0;
	for (int i = 0; i < N; i += 3)
	{
		if (i + 2 >= N) {
			break;
		}
		str a = "";
		a += to_string(A[i]);
		a += to_string(A[i + 1]);
		a += to_string(A[i + 2]);
		// printf("i = %d ", i);
		if (a == "000") {
			// printf("ner\n");
			continue;
		} else if (a == "011") {
			ats |= (0ll << (b++));
			ats |= (0ll << (b++));
		} else if (a == "101") {
			ats |= (0ll << (b++));
			ats |= (1ll << (b++));
		} else if (a == "110") {
			ats |= (1ll << (b++));
			ats |= (0ll << (b++));
		} else if (a == "111") {
			ats |= (1ll << (b++));
			ats |= (1ll << (b++));
		} else {
			if (a == "010" or a == "100") {
				ats |= (1ll << (b++));
				// printf("1\n");
			} else if (a == "001") {
				// printf("0\n");
				b++;
			}

		}
	}
	return ats;
}
# 결과 실행 시간 메모리 Grader output
1 Partially correct 62 ms 3312 KB Output is partially correct - L* = 24
2 Partially correct 63 ms 3328 KB Output is partially correct - L* = 21
3 Partially correct 61 ms 3312 KB Output is partially correct - L* = 21
4 Partially correct 63 ms 3136 KB Output is partially correct - L* = 23
5 Partially correct 63 ms 3312 KB Output is partially correct - L* = 20
6 Partially correct 62 ms 3320 KB Output is partially correct - L* = 22
7 Partially correct 62 ms 3312 KB Output is partially correct - L* = 23
8 Partially correct 61 ms 3328 KB Output is partially correct - L* = 20
9 Partially correct 63 ms 3328 KB Output is partially correct - L* = 20
10 Partially correct 62 ms 3328 KB Output is partially correct - L* = 25
11 Partially correct 63 ms 3568 KB Output is partially correct - L* = 22
12 Partially correct 63 ms 3584 KB Output is partially correct - L* = 24
13 Partially correct 61 ms 3328 KB Output is partially correct - L* = 20
14 Partially correct 62 ms 3328 KB Output is partially correct - L* = 23
15 Partially correct 61 ms 3328 KB Output is partially correct - L* = 21
16 Partially correct 62 ms 3328 KB Output is partially correct - L* = 23
17 Partially correct 62 ms 3568 KB Output is partially correct - L* = 21
18 Partially correct 62 ms 3312 KB Output is partially correct - L* = 23
19 Partially correct 62 ms 3312 KB Output is partially correct - L* = 24
20 Partially correct 62 ms 3328 KB Output is partially correct - L* = 21
21 Partially correct 61 ms 3328 KB Output is partially correct - L* = 20
22 Partially correct 64 ms 3328 KB Output is partially correct - L* = 20
23 Partially correct 62 ms 3328 KB Output is partially correct - L* = 20
24 Partially correct 61 ms 3328 KB Output is partially correct - L* = 22
25 Partially correct 61 ms 3328 KB Output is partially correct - L* = 21
26 Partially correct 62 ms 3312 KB Output is partially correct - L* = 22
27 Partially correct 62 ms 3328 KB Output is partially correct - L* = 22
28 Partially correct 63 ms 3328 KB Output is partially correct - L* = 21
29 Partially correct 62 ms 3328 KB Output is partially correct - L* = 23
30 Partially correct 63 ms 3312 KB Output is partially correct - L* = 23
31 Partially correct 61 ms 3328 KB Output is partially correct - L* = 22
32 Partially correct 62 ms 3312 KB Output is partially correct - L* = 22
33 Partially correct 62 ms 3568 KB Output is partially correct - L* = 20
34 Partially correct 62 ms 3312 KB Output is partially correct - L* = 27
35 Partially correct 66 ms 3312 KB Output is partially correct - L* = 20
36 Partially correct 63 ms 3328 KB Output is partially correct - L* = 22
37 Partially correct 61 ms 3328 KB Output is partially correct - L* = 20
38 Partially correct 62 ms 3328 KB Output is partially correct - L* = 22
39 Partially correct 61 ms 3328 KB Output is partially correct - L* = 21
40 Partially correct 64 ms 3328 KB Output is partially correct - L* = 22