#include <bits/stdc++.h>
#include "grader.h"
using namespace std;
vector<int> filler(56, 0);
vector<vector<int>> single2D(65536, filler);
unordered_map<long long, int> doubleWeight[56];
long long singleConst = 100000000000, doubleConst = 230000000000;
//single[char][lang] = weight?
void excerpt(int* E) {
int n = 100, i, j;
vector<long long> langScore(56, 0);
//singles
i = -1; while (++i < n) {
int v = E[i];
long long S = 0;
j = -1; while (++j < 56) {
long long sv = single2D[v][j];
S += sv*sv;
}
if (S == 0) {
langScore[0]++;
} else {
long long sc = singleConst/S;
j = -1; while (++j < 56) {
long long sv = single2D[v][j];
langScore[j] += sc*sv*sv;
}
}
}
i = 0; while (++i < n) {
long long a = E[i-1], b = E[i];
long long dv = (a<<16LL)+b, S = 0;
j = -1; while (++j < 56) {
if (doubleWeight[j].find(dv) != doubleWeight[j].end()) {
long long ww = doubleWeight[j][dv];
S += ww*ww;
}
}
if (S == 0) {
langScore[0]++;
} else {
long long dc = doubleConst/S;
j = -1; while (++j < 56) {
if (doubleWeight[j].find(dv) != doubleWeight[j].end()) {
long long ww = doubleWeight[j][dv];
langScore[j] += dc*ww*ww;
}
}
}
}
long long bestLang = 0;
i = -1; while (++i < 56) {
if (langScore[i] > langScore[bestLang]) bestLang = i;
}
long long L = language(bestLang);
i = -1; while (++i < n) {
int v = E[i];
single2D[v][L]++;
}
i = 0; while (++i < n) {
long long a = E[i-1], b = E[i];
long long dv = (a<<16LL)+b;
doubleWeight[L][dv]++;
}
return;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |