Submission #511416

#TimeUsernameProblemLanguageResultExecution timeMemory
511416600MihneaLanguages (IOI10_languages)C++17
96 / 100
9342 ms18764 KiB
#include <bits/stdc++.h> #include "grader.h" #include "lang.h" using namespace std; typedef 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 < N - 3; i++) { ll x = a[i]; ll y = (ll) B * x + a[i + 1]; ll z = (ll) B * y + a[i + 2]; int xx, yy, zz; for (int l = 0; l < L; l++) { xx = words[l].count(x); yy = words[l].count(y); zz = words[l].count(z); score[l] += xx; score[l] += yy; score[l] += zz * 10; } } 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 < N - 3; i++) { ll x = a[i]; ll y = (ll) B * x + a[i + 1]; ll z = (ll) B * y + a[i + 2]; for (int l = 0; l < L; l++) { words[solution].insert(x); words[solution].insert(y); words[solution].insert(z); } } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...