Submission #1029976

#TimeUsernameProblemLanguageResultExecution timeMemory
1029976TobLanguages (IOI10_languages)C++14
0 / 100
4293 ms262144 KiB
#include <bits/stdc++.h> #include "grader.h" #include "lang.h" #define F first #define S second #define all(x) x.begin(), x.end() #define pb push_back #define FIO ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0) using namespace std; typedef long long ll; typedef pair <int, int> pii; typedef pair <ll, ll> pll; typedef array <int, 56> sc; const int siz = 100, le = 10, B = 31337, mod1 = 1e9 + 7, mod2 = 1e9 + 9; map <pll, sc> m; sc score(pll h, int c) { sc res; for (int i = 0; i < 56; i++) res[i] = m[h][i]*c*c; return res; } void excerpt(int* arr) { sc res; for (int i = 0; i < siz; i++) { pll h = {0, 0}; for (int j = i; j < min(siz, i+le); j++) { h.F = (h.F*B+arr[j])%mod1; h.S = (h.S*B+arr[j])%mod2; sc d = score(h, j-i+1); for (int k = 0; k < 56; k++) res[k] += d[k]; } } int x = 0; for (int i = 1; i < 56; i++) if (res[i] > res[x]) x = i; int y = language(x); for (int i = 0; i < siz; i++) { pll h = {0, 0}; for (int j = i; j < min(siz, i+le); j++) { h.F = (h.F*B+arr[j])%mod1; h.S = (h.S*B+arr[j])%mod2; m[h][y]++; } } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...