답안 #899057

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
899057 2024-01-05T12:28:01 Z weajink Ancient Machine 2 (JOI23_ancient2) C++17
컴파일 오류
0 ms 0 KB
#include "ancient2.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
//Autor: Michał Szeliga
#ifdef LOCAL
#define debug(...) __VA_ARGS__;
#else
#define debug(...) {}
#endif
#define read(...) debug((void)!freopen(__VA_ARGS__,"r",stdin););

const int M = 1001;
bitset<M> akt[1000];
int ile = 0;
int gauss(bitset<M> x){
	int i;
	for (i = 0; i < M-1; i++){
		if (akt[i].empty() && x[i]){
			akt[i] = x;
			ile++;
			return i;
		}	
		x ^= akt[i];
	}
	return -1;
}
bool policz(int x){
	bitset<1001> wy;
	wy[x] = 1;
	for (int i = 0; i < M-1; i++){
		if (wy[i]) wy ^= akt[i];
	}
	return wy[1000];
}
void stworz_automat(int c, int r){
	bitset<M> wy;
	for (int i = r; i < M-1; i += c) wy[i] = 1;
	int id = gauss(wy);
	if (id != -1){
		int m = 2*c;
		vector<int> A,B;
		for (int i = 0; < c; i++){
			if ((i+1)%c == r){
				A.push_back(r);
				B.push_back(c+r);
			}else{
				A.push_back(i+1);
				B.push_back(i+1);
			}
		}
		for (int i = c; i < 2*c; i++){
			if ((i+1)%c == r){
				A.push_back(r);
				B.push_back(c+r);
			}else{
				A.push_back(i+1);
				B.push_back(i+1);
			}
		}
		akt[id][1000] = (Query(m,A,B) >= c);
	}
}
string Solve(int n){
	for (int c = 1; c < 1000; i++){
		for (int r = 0; r < c; r++){
			stworz_automat(c,r);
			if (ile == 1000) break;
		}
	} 
	string wy;
	for (int i = 0; i < n; i++){
		if (policz(i)) wy += '1';
		else wy += '0';
	}
	return wy;
}

Compilation message

ancient2.cpp: In function 'int gauss(std::bitset<1001>)':
ancient2.cpp:19:14: error: 'class std::bitset<1001>' has no member named 'empty'
   19 |   if (akt[i].empty() && x[i]){
      |              ^~~~~
ancient2.cpp: In function 'void stworz_automat(int, int)':
ancient2.cpp:43:19: error: expected primary-expression before '<' token
   43 |   for (int i = 0; < c; i++){
      |                   ^
ancient2.cpp: In function 'std::string Solve(int)':
ancient2.cpp:65:28: error: 'i' was not declared in this scope
   65 |  for (int c = 1; c < 1000; i++){
      |                            ^