# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1167942 | razivo | Genetics (BOI18_genetics) | C++20 | 0 ms | 0 KiB |
#include <iostream>
#include <set>
#include <vector>
using namespace std;
vector<string> a;int N,M,K;
vector<bitset<4100>> l;
bool comp(int i, int j) {
return (l[i]&l[j]).count() == K;
}
int main()
{
cin>>N>>M>>K;
for (int i = 0; i < N; ++i) {
string s; cin>>s;
a.push_back(s);
}
set<int> s;
vector<int> com;
for (int i = 0; i < N; ++i) {
s.insert(i);
}
while(!s.empty()) {
int u = *s.begin();
for(int v :s) {
if(v==u) continue;
if(!comp(u,v)) {
com.push_back(v);
com.push_back(u);
s.erase(v);
s.erase(u);