답안 #477441

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
477441 2021-10-02T07:36:13 Z hhhhaura Bitwise (BOI06_bitwise) C++14
40 / 100
1 ms 204 KB
#define wiwihorz
#include <bits/stdc++.h>
#pragma GCC optimize("Ofast")
#pragma loop-opt(on)
#define rep(i, a, b) for(int i = a; i <= b; i++)
#define rrep(i, a, b) for(int i = b; i >= a; i--)
using namespace std;
namespace solver {
	int n, p;
	vector<int> A, B, st, sz, ans, a;
	void init_(int _n, int _p) {
		n = _n, p = _p;
		A.assign(n + 1, 0);
		B.assign(n + 1, 0);
		st.assign(p + 1, 1);
		sz.assign(p + 1, 0);
		ans.assign(n + 1, 0);
		a.assign(n + 1, 0);
	}
	int operate(int x) {
		int val = 1;
		a.assign(n + 1, 0);
		rep(i, 1, p) {
			int L = st[i], R = st[i] + sz[i] - 1;
			vector<int> cnt(4);
			rep(j, L, R) {
				if(ans[j] + (1 << x) <= B[j]) a[j] |= 2;
				if(ans[j] + (1 << x) - 1 >= A[j]) a[j] |= 1;
				cnt[a[j]] ++;
			}
			val &= (cnt[2] || cnt[3]);
			rep(j, L, R) {
				if(a[j] == 2) ans[j] |= (1 << x);
				if(a[j] == 3 && !cnt[2] && !(cnt[3] - 1)) ans[j] |= (1 << x), cnt[3] --;
			}
		}
		return val;
	}
	int solve() {
		int val = 0;
		rrep(i, 0, 30) val |= (operate(i) << i);
		return val;
	} 
	

};
using namespace solver;
signed main() {
	ios::sync_with_stdio(false), cin.tie(0);
	int n, p; 
	cin >> n >> p;
	init_(n, p);
	rep(i, 1, p) {
		st[i] = st[i - 1] + sz[i - 1];
		cin >> sz[i];
	}
	rep(i, 1, n) cin >> A[i] >> B[i];
	cout << solve() << "\n";
	return 0;
}

Compilation message

bitwise.cpp:4: warning: ignoring '#pragma loop ' [-Wunknown-pragmas]
    4 | #pragma loop-opt(on)
      |
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 204 KB Output is correct
2 Incorrect 1 ms 204 KB Output isn't correct
3 Correct 0 ms 204 KB Output is correct
4 Correct 0 ms 204 KB Output is correct
5 Incorrect 1 ms 204 KB Output isn't correct
6 Incorrect 0 ms 204 KB Output isn't correct
7 Incorrect 0 ms 204 KB Output isn't correct
8 Correct 0 ms 204 KB Output is correct
9 Incorrect 0 ms 204 KB Output isn't correct
10 Correct 0 ms 204 KB Output is correct
11 Incorrect 0 ms 204 KB Output isn't correct
12 Incorrect 0 ms 204 KB Output isn't correct
13 Correct 0 ms 204 KB Output is correct
14 Incorrect 0 ms 204 KB Output isn't correct
15 Correct 0 ms 204 KB Output is correct
16 Correct 0 ms 204 KB Output is correct
17 Incorrect 1 ms 204 KB Output isn't correct
18 Incorrect 1 ms 204 KB Output isn't correct
19 Incorrect 1 ms 204 KB Output isn't correct
20 Incorrect 0 ms 204 KB Output isn't correct