# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1167957 | razivo | Genetics (BOI18_genetics) | C++20 | 2094 ms | 25612 KiB |
#include <iostream>
#include <set>
#include <vector>
#include <bitset>
#include <string>
#include <algorithm>
using namespace std;
vector<string> a;int N,M,K;
vector<bitset<4100>> l1;
vector<bitset<4100>> l2;
vector<bitset<4100>> c(4100);
vector<bitset<4100>> t(4100);
bool comp(int i, int j) {
if(i>j) swap(i,j);
if(c[i][j]) return t[i][j];
bool u = ((l1[i]^l1[j]) | (l2[i]^l2[j])).count() == K;
c[i][j]=true;
t[i][j] = u;
return u;
}
int main()
{
cin>>N>>M>>K;
l1.resize(N);
l2.resize(N);
for (int i = 0; i < N; ++i) {
string s; cin>>s;
a.push_back(s);
for (int j = 0; j < M; ++j) {
l1[i][j]= (s[j]=='A' || s[j]=='C');
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |