Submission #1029982

#TimeUsernameProblemLanguageResultExecution timeMemory
1029982TobLanguages (IOI10_languages)C++14
0 / 100
10078 ms33024 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, int> m[56]; sc score(pll h, int c) { sc res; for (int i = 0; i < 56; i++) if (m[i].find(h) != m[i].end()) res[i] = m[i][h]*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[y][h]++; } } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...