Submission #34171218


Source Code Expand

// Problem: B - Plus and AND
// Contest: AtCoder - AtCoder Regular Contest 146
// URL: https://atcoder.jp/contests/arc146/tasks/arc146_b
// Memory Limit: 1024 MB
// Time Limit: 5000 ms
// 
// Powered by CP Editor (https://cpeditor.org)

#include<bits/stdc++.h>
typedef long long ll;
#define rep(i, a, b) for(int i = (a); i <= (b); i ++)
#define per(i, a, b) for(int i = (a); i >= (b); i --)
#define Ede(i, u) for(int i = head[u]; i; i = e[i].nxt)
using namespace std;

inline int read() {
	int x = 0, f = 1; char c = getchar();
	while(c < '0' || c > '9') f = (c == '-') ? - 1 : 1, c = getchar();
	while(c >= '0' && c <= '9') x = x * 10 + c - 48, c = getchar();
	return x * f;
}

const int N = 2e5 + 10;
int n, m, k, a[N], b[N], p[N], c[N];

ll check(int o) {
	rep(i, 1, n) {
		p[i] = i;
		if(a[i] >> o & 1) b[i] = 0;
		else b[i] = (1 << o) - (a[i] & ((1 << o) - 1));
	}
	sort(p + 1, p + n + 1, [](int x, int y) {return b[x] < b[y];});
	ll cur = 0;
	rep(i, 1, k) cur += b[p[i]];
	return cur;
}

void prework() {
	int lim = m;
	per(o, 30, 0) {
		ll ned = check(o);
		if(ned > lim) continue;
		if(ned) {rep(i, 1, k) c[i] = a[p[i]]; return;}
		lim -= ned;
		while(n && b[p[n]]) n --;
		rep(i, 1, n) b[i] = a[p[i]];
		rep(i, 1, n) a[i] = b[i];
	}
	rep(i, 1, k) c[i] = a[i];
}

bool solve(int o) {
	ll cur = 0;
	rep(i, 1, k) {
		if(c[i] >> o & 1) ;
		else cur += (1 << o) - (c[i] & ((1 << o) - 1));
	}
	if(cur > m) return false;
	m -= cur;
	rep(i, 1, k) if(c[i] >> o & 1) ; else c[i] = 0;
	return true;
}

int main() {
	n = read(), m = read(), k = read();
	rep(i, 1, n) a[i] = read();
	prework();
	int ans = 0;	
	per(o, 30, 0) if(solve(o)) ans |= (1 << o);
	printf("%d\n", ans);
	return 0;
}

Submission Info

Submission Time
Task B - Plus and AND
User lpf
Language C++ (GCC 9.2.1)
Score 500
Code Size 1756 Byte
Status AC
Exec Time 212 ms
Memory 6736 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 500 / 500
Status
AC × 2
AC × 58
Set Name Test Cases
Sample example_00.txt, example_01.txt
All example_00.txt, example_01.txt, test_00.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt, test_37.txt, test_38.txt, test_39.txt, test_40.txt, test_41.txt, test_42.txt, test_43.txt, test_44.txt, test_45.txt, test_46.txt, test_47.txt, test_48.txt, test_49.txt, test_50.txt, test_51.txt, test_52.txt, test_53.txt, test_54.txt, test_55.txt
Case Name Status Exec Time Memory
example_00.txt AC 4 ms 3620 KiB
example_01.txt AC 2 ms 3660 KiB
test_00.txt AC 140 ms 5888 KiB
test_01.txt AC 212 ms 6728 KiB
test_02.txt AC 159 ms 5924 KiB
test_03.txt AC 113 ms 5288 KiB
test_04.txt AC 25 ms 4052 KiB
test_05.txt AC 95 ms 5852 KiB
test_06.txt AC 55 ms 4684 KiB
test_07.txt AC 26 ms 4672 KiB
test_08.txt AC 40 ms 4904 KiB
test_09.txt AC 82 ms 6084 KiB
test_10.txt AC 6 ms 3812 KiB
test_11.txt AC 18 ms 3964 KiB
test_12.txt AC 29 ms 4264 KiB
test_13.txt AC 9 ms 3916 KiB
test_14.txt AC 98 ms 5444 KiB
test_15.txt AC 26 ms 4360 KiB
test_16.txt AC 13 ms 3948 KiB
test_17.txt AC 13 ms 3860 KiB
test_18.txt AC 150 ms 6172 KiB
test_19.txt AC 62 ms 5644 KiB
test_20.txt AC 193 ms 6352 KiB
test_21.txt AC 159 ms 6304 KiB
test_22.txt AC 116 ms 6272 KiB
test_23.txt AC 146 ms 6276 KiB
test_24.txt AC 97 ms 6284 KiB
test_25.txt AC 52 ms 6016 KiB
test_26.txt AC 202 ms 6696 KiB
test_27.txt AC 158 ms 6468 KiB
test_28.txt AC 59 ms 6000 KiB
test_29.txt AC 157 ms 6468 KiB
test_30.txt AC 116 ms 5556 KiB
test_31.txt AC 71 ms 4516 KiB
test_32.txt AC 130 ms 5788 KiB
test_33.txt AC 23 ms 3892 KiB
test_34.txt AC 145 ms 6104 KiB
test_35.txt AC 166 ms 6504 KiB
test_36.txt AC 48 ms 4484 KiB
test_37.txt AC 116 ms 5564 KiB
test_38.txt AC 11 ms 3564 KiB
test_39.txt AC 11 ms 3772 KiB
test_40.txt AC 148 ms 6180 KiB
test_41.txt AC 50 ms 4336 KiB
test_42.txt AC 67 ms 5768 KiB
test_43.txt AC 76 ms 4888 KiB
test_44.txt AC 14 ms 4040 KiB
test_45.txt AC 14 ms 5380 KiB
test_46.txt AC 117 ms 5572 KiB
test_47.txt AC 189 ms 6712 KiB
test_48.txt AC 29 ms 3912 KiB
test_49.txt AC 46 ms 4348 KiB
test_50.txt AC 51 ms 4528 KiB
test_51.txt AC 137 ms 5736 KiB
test_52.txt AC 11 ms 3836 KiB
test_53.txt AC 208 ms 6736 KiB
test_54.txt AC 77 ms 4908 KiB
test_55.txt AC 137 ms 5820 KiB