제출 #166872

#제출 시각아이디문제언어결과실행 시간메모리
166872Eae02Genetics (BOI18_genetics)C++14
19 / 100
2069 ms2552 KiB
#pragma GCC optimize("Ofast")
#include <bits/stdc++.h>
using namespace std;

bitset<4101> dna[4101];

int diff[4101][4101];

int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(nullptr);
	
	int n, m, k;
	cin >> n >> m >> k;
	
	vector<int> permN(n);
	iota(permN.begin(), permN.end(), 0);
	random_shuffle(permN.begin(), permN.end());
	
	vector<int> permM(m);
	iota(permM.begin(), permM.end(), 0);
	random_shuffle(permM.begin(), permM.end());
	
	for (int i = 0; i < n; i++) {
		string ln; cin >> ln;
		for (int j = 0; j < m; j++) {
			if (ln[j] == 'A')
				dna[permN[i]].set(permM[j]);
		}
	}
	
	vector<bool> cand(n);
	int numCand = 0;
	for (int a = 1; a < n; a++) {
		if ((dna[a] ^ dna[0]).count() == k) {
			cand[a] = true;
			numCand++;
		}
	}
	
	int ans = 0;
	if (numCand < n - 1) {
		for (int a = 1; a < n; a++) {
			if (!cand[a])
				continue;
			bool ok = true;
			for (int b = 1; b < n; b++) {
				if (a != b && (dna[a] ^ dna[b]).count() != k) {
					ok = false;
					cand[b] = false;
					break;
				}
			}
			if (ok) {
				ans = a;
				break;
			}
		}
	}
	
	cout << (find(permN.begin(), permN.end(), ans) - permN.begin() + 1) << "\n";
}

컴파일 시 표준 에러 (stderr) 메시지

genetics.cpp: In function 'int main()':
genetics.cpp:35:33: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   if ((dna[a] ^ dna[0]).count() == k) {
       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
genetics.cpp:48:45: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     if (a != b && (dna[a] ^ dna[b]).count() != k) {
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...