Submission #961292

# Submission time Handle Problem Language Result Execution time Memory
961292 2024-04-11T19:45:34 Z mgch Genetics (BOI18_genetics) C++14
27 / 100
2000 ms 12124 KB
#include <bits/stdc++.h>

using namespace std;

const int N = 4107, L = 26, K = 66, MOD = 1000000007;

char s[N][N];

int main() {
//  freopen("input.txt", "r", stdin);
//    ios::sync_with_stdio(false); cin.tie(0);
    int n, m, k;
    scanf("%d%d%d\n", &n, &m, &k);
    vector <int> ord(n), rnk(n, 0);
    iota(ord.begin(), ord.end(), 0);
    for (int i = 0; i < n; ++i) {
        scanf("%s\n", s[i]);
    }
    auto diff = [&](int x, int y) {
        int ans = 0;
        for (int i = 0; i < m; ++i) {
            ans += s[x][i] != s[y][i];
        }
        return ans;
    };
    for (int it = 0; it < K; ++it) {
        for (int i = 0; i + 1 < (int)ord.size(); ++i) {
            if (diff(ord[i], ord[i + 1]) != k) {
                ++i;
                continue;
            }
            rnk[ord[i]] += 1;
            rnk[ord[i + 1]] += 1;
        }
        sort(ord.begin(), ord.end(), [&](int x, int y) { return rnk[x] > rnk[y]; });
        while (ord.size() > 1 && rnk[ord.back()] == 0) ord.pop_back();
        random_shuffle(ord.begin(), ord.end());
    }
    sort(ord.begin(), ord.end(), [&](int x, int y) { return rnk[x] > rnk[y]; });
    for (int j = 0; j < (int)ord.size(); ++j) {
        int x = ord[j];
        bool ok = true;
        for (int i = 0; i < n && ok; ++i) {
            if (i == x) continue;
            if (diff(x, i) != k) ok = false;
        }
        if (ok) { cout << x + 1 << '\n'; break; }
    }
	return 0;
}

Compilation message

genetics.cpp: In function 'int main()':
genetics.cpp:13:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   13 |     scanf("%d%d%d\n", &n, &m, &k);
      |     ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
genetics.cpp:17:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   17 |         scanf("%s\n", s[i]);
      |         ~~~~~^~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2652 KB Output is correct
2 Correct 1 ms 2652 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 1 ms 2492 KB Output is correct
5 Correct 1 ms 2676 KB Output is correct
6 Correct 2 ms 2652 KB Output is correct
7 Correct 1 ms 2496 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 1 ms 2652 KB Output is correct
10 Correct 3 ms 2648 KB Output is correct
11 Correct 1 ms 2652 KB Output is correct
12 Correct 2 ms 2652 KB Output is correct
13 Correct 1 ms 2652 KB Output is correct
14 Correct 1 ms 2652 KB Output is correct
15 Correct 1 ms 2652 KB Output is correct
16 Correct 1 ms 2652 KB Output is correct
17 Correct 0 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1624 ms 9324 KB Output is correct
2 Correct 1808 ms 11984 KB Output is correct
3 Correct 428 ms 11844 KB Output is correct
4 Correct 64 ms 7404 KB Output is correct
5 Correct 1413 ms 12124 KB Output is correct
6 Correct 525 ms 12104 KB Output is correct
7 Correct 209 ms 5980 KB Output is correct
8 Correct 420 ms 6048 KB Output is correct
9 Correct 304 ms 11868 KB Output is correct
10 Execution timed out 2029 ms 11600 KB Time limit exceeded
11 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1624 ms 9324 KB Output is correct
2 Correct 1808 ms 11984 KB Output is correct
3 Correct 428 ms 11844 KB Output is correct
4 Correct 64 ms 7404 KB Output is correct
5 Correct 1413 ms 12124 KB Output is correct
6 Correct 525 ms 12104 KB Output is correct
7 Correct 209 ms 5980 KB Output is correct
8 Correct 420 ms 6048 KB Output is correct
9 Correct 304 ms 11868 KB Output is correct
10 Execution timed out 2029 ms 11600 KB Time limit exceeded
11 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2652 KB Output is correct
2 Correct 1 ms 2652 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 1 ms 2492 KB Output is correct
5 Correct 1 ms 2676 KB Output is correct
6 Correct 2 ms 2652 KB Output is correct
7 Correct 1 ms 2496 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 1 ms 2652 KB Output is correct
10 Correct 3 ms 2648 KB Output is correct
11 Correct 1 ms 2652 KB Output is correct
12 Correct 2 ms 2652 KB Output is correct
13 Correct 1 ms 2652 KB Output is correct
14 Correct 1 ms 2652 KB Output is correct
15 Correct 1 ms 2652 KB Output is correct
16 Correct 1 ms 2652 KB Output is correct
17 Correct 0 ms 348 KB Output is correct
18 Correct 1624 ms 9324 KB Output is correct
19 Correct 1808 ms 11984 KB Output is correct
20 Correct 428 ms 11844 KB Output is correct
21 Correct 64 ms 7404 KB Output is correct
22 Correct 1413 ms 12124 KB Output is correct
23 Correct 525 ms 12104 KB Output is correct
24 Correct 209 ms 5980 KB Output is correct
25 Correct 420 ms 6048 KB Output is correct
26 Correct 304 ms 11868 KB Output is correct
27 Execution timed out 2029 ms 11600 KB Time limit exceeded
28 Halted 0 ms 0 KB -