| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 1326999 | skibidigodv9 | Languages (IOI10_languages) | C++20 | 0 ms | 0 KiB |
#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;
long long singleConst = 100000000000, doubleConst = 180000000000;
//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;
}
}
}
long long bestLang = 0;
i = -1; while (++i < n) {
if (langScore[i] > langScore[bestLang]) bestLang = i;
}
long long L = language(bestLang);
i = -1; while (++i < n) {
int v = E[i];
single2D[v][L]++;
}
//long long ok = language(0);
return;
}
