Submission #961301

# Submission time Handle Problem Language Result Execution time Memory
961301 2024-04-11T19:48:56 Z mgch Genetics (BOI18_genetics) C++14
27 / 100
2000 ms 8808 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 < 3; ++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();
            reverse(ord.begin(), ord.end());
            //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:14: 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:18: 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 2652 KB Output is correct
5 Correct 1 ms 2652 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 2648 KB Output is correct
10 Correct 1 ms 2648 KB Output is correct
11 Correct 1 ms 2660 KB Output is correct
12 Correct 1 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 112 ms 6748 KB Output is correct
2 Correct 749 ms 8808 KB Output is correct
3 Execution timed out 2037 ms 8792 KB Time limit exceeded
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 112 ms 6748 KB Output is correct
2 Correct 749 ms 8808 KB Output is correct
3 Execution timed out 2037 ms 8792 KB Time limit exceeded
4 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 2652 KB Output is correct
5 Correct 1 ms 2652 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 2648 KB Output is correct
10 Correct 1 ms 2648 KB Output is correct
11 Correct 1 ms 2660 KB Output is correct
12 Correct 1 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 112 ms 6748 KB Output is correct
19 Correct 749 ms 8808 KB Output is correct
20 Execution timed out 2037 ms 8792 KB Time limit exceeded
21 Halted 0 ms 0 KB -