Submission #434064

# Submission time Handle Problem Language Result Execution time Memory
434064 2021-06-20T14:37:03 Z KoD Languages (IOI10_languages) C++17
65 / 100
5759 ms 9092 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];
        }
        for (int i = 0; i < SZ - 1; ++i) {
            const auto itr = pair[t].find(std::make_pair(E[i], E[i + 1]));
            point[t] += 10 * (itr == pair[t].end() ? 0 : itr -> second);
        }
    }
    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 5533 ms 9092 KB Output is correct
# Verdict Execution time Memory Grader output
1 Partially correct 5759 ms 9012 KB Output is partially correct - 60.37%