Submission #512081

#TimeUsernameProblemLanguageResultExecution timeMemory
512081600MihneaLanguages (IOI10_languages)C++17
100 / 100
9554 ms22292 KiB
#include <bits/stdc++.h> #include "grader.h" #include "lang.h" using namespace std; typedef unsigned long long ll; const int N = 100; const int L = 56; const int B = 65535; unordered_set<ll> words[L]; int score[L]; bool first = 1; void excerpt(int *a) { if (first) { first = 0; } for (int i = 0; i < 97; i++) { ll x = a[i]; ll y = (ll) B * x + a[i + 1]; ll z = (ll) B * y + a[i + 2]; ll g = (ll) B * z + a[i + 3]; for (int l = 0; l < L; l++) { score[l] += words[l].count(x); score[l] += words[l].count(g); } } int highest = -1, prediction = -1; for (int l = 0; l < L; l++) { if (score[l] > highest) { highest = score[l]; prediction = l; } score[l] = 0; } int solution = language(prediction); for (int i = 0; i < 97; i++) { ll x = a[i]; ll y = (ll) B * x + a[i + 1]; ll z = (ll) B * y + a[i + 2]; ll g = (ll) B * z + a[i + 3]; for (int l = 0; l < L; l++) { words[solution].insert(x); words[solution].insert(g); } } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...