답안 #438143

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
438143 2021-06-27T16:20:56 Z lulwpop Bootfall (IZhO17_bootfall) C++14
0 / 100
5 ms 716 KB
#include <bits/stdc++.h>
#define all(X) X.begin(), X.end()
#define sz(x) (int)x.size()
#define fr first
#define sc second
#define endl '\n'

using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
typedef pair <int, int> pii;
typedef pair <ll, ll> pll;

const int maxn = 1e6 + 10;
const int maxa = 1e6;
const int inf = 2e9;
const ll INF = 1e18;
const ll mod = 1e9 + 7;
const int block = 350;

int main () 
{
	ios_base::sync_with_stdio(0); cin.tie();
#ifndef ONLINE_JUDGE
	freopen("input.txt", "r", stdin);
	freopen("output.txt", "w", stdout);
#else
	freopen("bootfall.in", "r", stdin);
	freopen("bootfall.out", "w", stdout);
#endif
	int n; cin >> n;
	vector <int> a (n);
	for (int i = 0; i < n; i++) {
		cin >> a[i];
	}
	bitset <25100> st;
	int sum = 0;
	st[0] = 1;
	for (int i = 0; i < n; i++) {
		st |= (st << a[i]);
		sum += a[i];
	}
	if (!(sum & 1) && !st[sum >> 1]) {
		cout << 0;
		return 0;
	}
	vector <int> ans;
	for (int ins = 1; ins <= 25000; ins++) {
		bool ok = true;
		for (int i = 0; i < n; i++) {
			st = 0;
			st[0] = 1;
			sum = 0;
			for (int j = 0; j < n; j++) {
				if (i != j) {
					st |= (st << a[j]);
					sum += a[j];
				}
			}
			st |= (st << ins);
			sum += ins;
			if ((sum & 1)) {
				ok = false;
				break;
			}
			else if (!st[sum >> 1]) {
				ok = false;
				break;
			}
		}
		if (ok) {
			ans.push_back(ins);
		} 
	}
	cout << sz(ans) << endl;
	for (auto i : ans) {
		cout << i << " ";
	}
	return 0;
}

Compilation message

bootfall.cpp: In function 'int main()':
bootfall.cpp:26:9: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   26 |  freopen("input.txt", "r", stdin);
      |  ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
bootfall.cpp:27:9: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   27 |  freopen("output.txt", "w", stdout);
      |  ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Incorrect 5 ms 716 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 5 ms 716 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 5 ms 716 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 5 ms 716 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 5 ms 716 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 5 ms 716 KB Output isn't correct
2 Halted 0 ms 0 KB -