#include <bits/stdc++.h>
#include "grader.h"
#include "lang.h"
using namespace std;
using t3i = tuple<int, int, int>;
using pdi = pair<double, int>;
using ll=long long;
unordered_map<ll, int> freq[60];
int num[60];
double loss(int l, unordered_map<ll, int> v) {
double ans = 0;
for (auto [a, b] : v) {
ans += pow(((num[l] == 0 ? 0 : (double)freq[l][a]/num[l])) - (b/98.0), 2);
}
// for (auto [a, b] : freq[l]) {
// if (v.find(a) == v.end()) ans += pow((num[l] == 0 ? 0 : (double)b/num[l]), 2);
// }
return ans;
}
ll compress(int a, int b, int c) {
return a * 70000ll * 70000 + b * 70000ll + c;
}
void excerpt(int *E) {
unordered_map<ll, int> v;
for (int i = 0; i <= 97; i++) {
v[compress(E[i], E[i+1], E[i+2])]++;
}
pdi best = {1e9, -1};
for (int l = 0; l <= 55; l++) {
best = min(best, (pdi){loss(l, v), l});
}
int ans = language(best.second);
num[ans] += 98;
for (auto [a, b] : v) {
freq[ans][a] += b;
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |