제출 #1206719

#제출 시각아이디문제언어결과실행 시간메모리
1206719PenguinsAreCuteCouncil (JOI23_council)C++20
16 / 100
4090 ms1584 KiB
#include <bits/stdc++.h>
using namespace std;
int main() {
	int n, m;
	cin >> n >> m;
	int bt[n], zero = 0, one = 0, two = 0, cnt[m];
	memset(bt,0,sizeof(bt));
	memset(cnt,0,sizeof(cnt));
	for(int i=0;i<n;i++)
		for(int j=0;j<m;j++) {
			int a;
			cin >> a;
			cnt[j] += a;
			bt[i] |= (a << j);
		}
	for(int i=0;i<n;i++)
		bt[i] = ~bt[i];
	for(int i=0;i<m;i++)
		if(cnt[i] >= (n / 2) + 2)
			zero++;
		else if(cnt[i] == (n / 2) + 1)
			one |= (1 << i);
		else if(cnt[i] == (n / 2))
			two |= (1 << i);
	for(int i=0;i<n;i++) {
		int ans = 0;
		for(int j=0;j<n;j++)
			if(j != i)
				ans = max(ans, __builtin_popcount((one&(bt[i]|bt[j]))|(two&bt[i]&bt[j])));
		cout << ans + zero << "\n";
	}
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...