Submission #1167945

#TimeUsernameProblemLanguageResultExecution timeMemory
1167945razivoGenetics (BOI18_genetics)C++20
47 / 100
1836 ms19404 KiB
#include <iostream>
#include <set>
#include <vector>
#include <bitset>
#include <string>
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;
    l.resize(N);
    for (int i = 0; i < N; ++i) {
        string s; cin>>s;
        a.push_back(s);
        for (int j = 0; j < M; ++j) {
            l[i][j]= (s[j]=='A');
        }
    }
    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);
                goto label1;
            }
        }
        for(int v :com) {
            if(v==u) continue;
            if(!comp(u,v)) {
                com.push_back(u);
                s.erase(u);
                goto label1;
            }
        }
        cout<<(u+1)<<endl;
        exit(0);
        label1:
        int t =1;
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...