Submission #57240

#TimeUsernameProblemLanguageResultExecution timeMemory
57240CrownLanguages (IOI10_languages)C++14
0 / 100
10057 ms84176 KiB
#include "grader.h" #include "lang.h" #include <bits/stdc++.h> using namespace std; #define X first #define Y second #define pb push_back typedef pair<int, int> ii; typedef long long ll; #define SZ 100 #define lng 55 #define ch 65535 const ll all = 1LL*ch*ch; map<ll, double> mp[60]; int cnt[60]; map<ll, int> freq; void excerpt(int *E) { freq.clear(); for(int i = 0; i+1< 100; i++) { ll help = E[i]*ch+E[i+1]; freq[help]++; } int best = -1; double bestdiff = 1e18; for(int lang = 0; lang<= 55; lang++) { double diff = 0; for(auto kk : freq) { ll chunk = kk.X; double f = 1.00*kk.Y/100; double here; if(cnt[lang] == 0) here = 1.00/all; else here = mp[lang][chunk]; diff += (here-f)*(here-f); } if(diff< bestdiff) { bestdiff = diff; best = lang; } } int ans = language(best); for(auto &kk : mp[ans]) { kk.Y *= cnt[ans]; } cnt[ans]++; for(auto kk : freq) { mp[ans][kk.X] += kk.Y; } for(auto &kk : mp[ans]) { kk.Y /= cnt[ans]; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...