Submission #961296

# Submission time Handle Problem Language Result Execution time Memory
961296 2024-04-11T19:47:15 Z mgch Genetics (BOI18_genetics) C++14
27 / 100
2000 ms 10604 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 < L; ++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 2648 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 2652 KB Output is correct
5 Correct 1 ms 2648 KB Output is correct
6 Correct 1 ms 2652 KB Output is correct
7 Correct 1 ms 2652 KB Output is correct
8 Correct 1 ms 348 KB Output is correct
9 Correct 1 ms 2500 KB Output is correct
10 Correct 2 ms 2652 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 1 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1123 ms 8288 KB Output is correct
2 Correct 344 ms 10604 KB Output is correct
3 Correct 1619 ms 10596 KB Output is correct
4 Correct 138 ms 7260 KB Output is correct
5 Correct 1581 ms 10604 KB Output is correct
6 Execution timed out 2028 ms 10584 KB Time limit exceeded
7 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1123 ms 8288 KB Output is correct
2 Correct 344 ms 10604 KB Output is correct
3 Correct 1619 ms 10596 KB Output is correct
4 Correct 138 ms 7260 KB Output is correct
5 Correct 1581 ms 10604 KB Output is correct
6 Execution timed out 2028 ms 10584 KB Time limit exceeded
7 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2648 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 2652 KB Output is correct
5 Correct 1 ms 2648 KB Output is correct
6 Correct 1 ms 2652 KB Output is correct
7 Correct 1 ms 2652 KB Output is correct
8 Correct 1 ms 348 KB Output is correct
9 Correct 1 ms 2500 KB Output is correct
10 Correct 2 ms 2652 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 1 ms 348 KB Output is correct
18 Correct 1123 ms 8288 KB Output is correct
19 Correct 344 ms 10604 KB Output is correct
20 Correct 1619 ms 10596 KB Output is correct
21 Correct 138 ms 7260 KB Output is correct
22 Correct 1581 ms 10604 KB Output is correct
23 Execution timed out 2028 ms 10584 KB Time limit exceeded
24 Halted 0 ms 0 KB -