Submission #434071

# Submission time Handle Problem Language Result Execution time Memory
434071 2021-06-20T14:41:20 Z KoD Languages (IOI10_languages) C++17
79 / 100
6023 ms 8996 KB
#include <bits/stdc++.h>
#include "grader.h"
#include "lang.h"

#define SZ 100
#define LN 56
#define LT 65536

int has[LN][LT];
std::array<std::map<std::pair<int, int>, int>, LN> pair;

template <class T> using Vec = std::vector<T>;

void excerpt(int *E) {
    std::array<long long, LN> point{};
    for (int t = 0; t < LN; ++t) {
        for (int i = 0; i < SZ; ++i) {
            point[t] += (has[t][i] != 0);
        }
        for (int i = 0; i < SZ - 1; ++i) {
            const auto itr = pair[t].find(std::make_pair(E[i], E[i + 1]));
            point[t] += 5 * (itr == pair[t].end() ? 0 : 1);
        }
    }
    const int ret = std::max_element(point.begin(), point.end()) - point.begin();
    const int type = language(ret);
    for (int i = 0; i < SZ; ++i) {
        has[type][E[i]] += 1;
    }
    for (int i = 0; i < SZ - 1; ++i) {
        pair[type][{E[i], E[i + 1]}] += 1;
    }
}
# Verdict Execution time Memory Grader output
1 Correct 5599 ms 8996 KB Output is correct
# Verdict Execution time Memory Grader output
1 Partially correct 6023 ms 8908 KB Output is partially correct - 73.41%