Submission #532693

#TimeUsernameProblemLanguageResultExecution timeMemory
532693fatemetmhrGenetics (BOI18_genetics)C++17
27 / 100
2079 ms16068 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; #define pb push_back mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); const int maxn5 = 3e5 + 10; string s[maxn5]; int av[maxn5], per[maxn5]; int n, m, k, sz; inline bool ok(int i, int j){ int cnt = 0; for(int z = 0; z < m && cnt <= k; z++) cnt += (s[i][z] != s[j][z]); return cnt == k; } inline void rem(int v){ bool re = false; for(int i = 0; i < sz; i++){ if(re) per[i - 1] = per[i]; if(per[i] == v) re = true; } if(re) sz--; } inline void check(int v){ for(int i = 0; i < n; i++) av[i] = i; shuffle(av, av + n, rng); for(int i = 0; i < n; i++) if(v != av[i] && !ok(v, av[i])){ rem(av[i]); return; } cout << v + 1 << endl; exit(0); } int main(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin >> n >> m >> k; for(int i = 0; i < n; i++){ cin >> s[i]; per[i] = i; } sz = n; while(true){ int v = per[rng() % sz]; check(v); rem(v); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...