Submission #1090832

#TimeUsernameProblemLanguageResultExecution timeMemory
1090832andrei_iorgulescuGenetics (BOI18_genetics)C++14
27 / 100
2067 ms13916 KiB
#include <bits/stdc++.h> using namespace std; mt19937 rng(123456); int n, m, k; char a[4105][4105]; bitset<4105> bs[4105]; int ff(int x, int y) { int cnt = 0; for (int i = 1; i <= m; i++) if (a[x][i] != a[y][i]) cnt++; return cnt; } bool mna(int x, int y) { int xx = ff(x, y); if (xx == k) return true; return false; } bool incandi[4105], dl[4105]; vector<int> candi; int cauta(int x) { for (int i = 0; i < candi.size(); i++) if (candi[i] == x) return i; } int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> n >> m >> k; for (int i = 1; i <= n; i++) for (int j = 1; j <= m; j++) cin >> a[i][j]; for (int i = 1; i <= n; i++) candi.push_back(i), incandi[i] = true; while (candi.size() > 1) { int idx = rng() % candi.size(); int x = candi[idx], y = -1; bool nah = false; for (int i = 1; i <= n; i++) { if (dl[i]) continue; if (x != i and !mna(x, i)) { nah = true; y = i; break; } } if (y == -1) { cout << x; return 0; } candi.erase(candi.begin() + idx); if (incandi[y]) candi.erase(candi.begin() + cauta(y)); //cout << x << ' ' << y << endl; incandi[x] = incandi[y] = false; dl[x] = dl[y] = true; vector<int> deel; for (auto it : candi) { if (!mna(it, y) or !mna(it, x)) deel.push_back(it); } for (auto it : deel) candi.erase(candi.begin() + cauta(it)), incandi[it] = false; } cout << candi[0]; return 0; }

Compilation message (stderr)

genetics.cpp: In function 'int cauta(int)':
genetics.cpp:33:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   33 |     for (int i = 0; i < candi.size(); i++)
      |                     ~~^~~~~~~~~~~~~~
genetics.cpp: In function 'int main()':
genetics.cpp:53:14: warning: variable 'nah' set but not used [-Wunused-but-set-variable]
   53 |         bool nah = false;
      |              ^~~
genetics.cpp: In function 'int cauta(int)':
genetics.cpp:36:1: warning: control reaches end of non-void function [-Wreturn-type]
   36 | }
      | ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...