Submission #402485

#TimeUsernameProblemLanguageResultExecution timeMemory
402485IloveNLanguages (IOI10_languages)C++14
95 / 100
8856 ms142636 KiB
#include<bits/stdc++.h> #include "grader.h" using namespace std; #define ll long long #define pii pair<int,int> #define pll pair<ll,ll> #define fi first #define se second #define mp make_pair #define pb push_back #define eb emplace_back #define all(vr) vr.begin(),vr.end() #define vi vector<int> #define vll vector<ll> namespace myrand { mt19937 mt(chrono::system_clock::now().time_since_epoch() / chrono::microseconds(1)); ll Int(ll l,ll r) {return uniform_int_distribution<ll> (l,r)(mt);} } using namespace myrand; const int N = 1e5 + 10; int base = 1e6 + 9, cnt = 0; unordered_set<int> word[60]; void excerpt(int E[]) { ll id = 0, mx = -1; for (int i = 0; i <= 55; ++i) { ll score = 0; int h = 0; for (int j = 0; j < 100; ++j) { int r = j; h = E[j]; while (r < 99 && word[i].count(h)) h = h * base + E[++r]; if (word[i].count(h)) r++; score += (r - j) * (r - j); j = r; } if (score > mx) id = i, mx = score; } id = language(id); cnt++; if (cnt > 7e3) return; for (int i = 0; i < 100; ++i) { int h = 0; for (int j = i; j < min(100, i + 9); ++j) { h = h * base + E[j]; word[id].insert(h); } } } /*int main() { //freopen("ss.inp", "r", stdin); ios::sync_with_stdio(false); cin.tie(0); return 0; }*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...