답안 #574876

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
574876 2022-06-09T12:42:40 Z Arvin Ancient Machine (JOI21_ancient_machine) C++17
5 / 100
66 ms 9132 KB
#include "Anna.h"
#include <bits/stdc++.h>
	
using namespace std;
	
#define ll long long
	
namespace {
	
int variable_example = 0;
	const int maxN = 1e5 + 5;	
}

struct SegmentTree {
	int tree[2*maxN];
	int n;

	void reset(){
		fill(tree, tree+2*maxN, 1e9);
	}

	void build(int n, vector<int> &v){
		this->n = n;
		for(int x=0;x<n;x++){
			tree[n+x] = v[x];
		}
		for(int x=n-1;x>0;x--){
			tree[x] = min(tree[x<<1], tree[x<<1|1]);
		}
	}

	void update(int pos, int val){
		pos += n;

		tree[pos] = val;
		for(int x=pos;x>1;x>>=1){
			tree[x>>1] = min(tree[x], tree[x^1]);
		}
	}

	int query(int left, int right){ // [L, R)
		int ans = 1e9;
		for(left += n, right += n; left < right; left >>= 1, right >>= 1){
			if(left&1){
				ans = min(ans, tree[left++]);
			}
			if(right&1){
				ans = min(ans, tree[--right]);
			}
		}
		return ans;
	}
} tree;

void Anna(int N, std::vector<char> S) {
	// 1 as store this first X or any Z after first Xa
	// 0 otherwise

	vector<int> v;
	int pos = -2;
	bool fX = false;
	for(int x=0;x<N;x++){
		if(S[x] == 'Z'){
			if(fX && pos+1 < x && (x+1 == N || S[x+1] != 'Z')){
				v.push_back(1);
			} else {
				v.push_back(0);
			}
			// Send(fX);
		} else if(S[x] == 'Y'){ // XYXYZYZYZYZ (occurences of X are always first than Y)
			// Send(0);
			v.push_back(0);
		} else if(S[x] == 'X'){
			if(!fX){
				v.push_back(1);
				// Send(1);
				fX = true;
				pos = x;
			} else {
				v.push_back(0);
				// Send(0);
			}
		}
	}

	Send(v[0]);
	bool skip = false;
	for(int x=0;x<N;x++){
		if(skip){
			skip = false;
			continue;
		}

		if(v[x] == 0){
			if(x+1 == N || v[x+1] == 1){
				Send(0);
				if(x+1 < N && v[x+1] == 1) Send(1);
				else Send(0);
			} else {
				Send(1);
				if(x+2 < N && v[x+2] == 1){
					Send(1);
				} else {
					Send(0);
				}
				skip = true;
			}
		}
	}
}
#include "Bruno.h"
#include <bits/stdc++.h>

using namespace std;

#define ll long long

namespace {

int variable_example = 0;

int FunctionExample(int P) { return 1 - P; }

}  // namespace

void Bruno(int N, int L, std::vector<int> A) {
//	for (int i = 0; i < L; i++) {
//	variable_example += FunctionExample(A[i]);
//	}
	// assert(L <= N);
	

	// length >= 3, use 1 + log2(length) bits
	// length <= 2
	vector<int> v;
	int idx = 1;
	if(A[0] == 1){
		v.push_back(1);
	}

	while(idx < L){
		if(A[idx] == 0){
			v.push_back(0);
			if(A[idx+1] == 1) v.push_back(1);
		} else {
			v.push_back(0);
			v.push_back(0);
			if(A[idx+1] == 1) v.push_back(1);
		}
		idx += 2;
	}
	// for(auto val : v){
	// 	cout << val << "\n";
	// }
	// cout << v.size() << "\n";
	vector<int> ans;
	int pos = -1, lst = 0;
	for(int x=0;x<v.size();x++){
		if(v[x] == 1){
			if(pos == -1){
				pos = x;
				lst = x+1;
			} else {
				for(int y=x-1;y>=lst;y--){
					ans.push_back(y);
				}
				ans.push_back(x);
				lst = x+1;
			}
		}
	}
	
	for(int x=0;x<=pos;x++){
		ans.push_back(x);
	}
	for(int x=lst;x<N;x++){
		ans.push_back(x);
	}

	for(auto val : ans){
		// cout << "- " << val << "\n";
		Remove(val);
	}
}

Compilation message

Anna.cpp:10:5: warning: '{anonymous}::variable_example' defined but not used [-Wunused-variable]
   10 | int variable_example = 0;
      |     ^~~~~~~~~~~~~~~~

Bruno.cpp: In function 'void Bruno(int, int, std::vector<int>)':
Bruno.cpp:48:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   48 |  for(int x=0;x<v.size();x++){
      |              ~^~~~~~~~~
Bruno.cpp: At global scope:
Bruno.cpp:12:5: warning: 'int {anonymous}::FunctionExample(int)' defined but not used [-Wunused-function]
   12 | int FunctionExample(int P) { return 1 - P; }
      |     ^~~~~~~~~~~~~~~
Bruno.cpp:10:5: warning: '{anonymous}::variable_example' defined but not used [-Wunused-variable]
   10 | int variable_example = 0;
      |     ^~~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 616 KB Output is correct
2 Correct 1 ms 516 KB Output is correct
3 Correct 2 ms 524 KB Output is correct
4 Correct 1 ms 520 KB Output is correct
5 Correct 1 ms 512 KB Output is correct
6 Correct 1 ms 524 KB Output is correct
7 Correct 1 ms 524 KB Output is correct
8 Correct 0 ms 516 KB Output is correct
9 Correct 0 ms 524 KB Output is correct
10 Correct 1 ms 516 KB Output is correct
11 Correct 1 ms 508 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Partially correct 65 ms 9096 KB Partially correct
2 Partially correct 66 ms 9132 KB Partially correct
3 Incorrect 61 ms 9048 KB Wrong Answer [6]
4 Halted 0 ms 0 KB -