# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
512968 | Markomafko972 | Languages (IOI10_languages) | C++17 | 9269 ms | 34720 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#include <stdlib.h>
#include <stdio.h>
#include "grader.h"
#include "lang.h"
using namespace std;
typedef unsigned long long ll;
unordered_map<int, ll> m[60];
set<ll> s;
vector<ll> v;
void excerpt(int *E) {
s.clear();
v.clear();
for (int i = 0; i < 100; i++) {
E[i]--;
s.insert(E[i]);
if (i > 0) s.insert((ll)65535*(ll)E[i-1]+(ll)E[i]);
if (i > 1) {
ll u = E[i-2];
u = u * (ll)65535 + (ll)E[i-1];
u = u * (ll)65535 + (ll)E[i];
s.insert(u);
}
if (i > 2 && (i <= 40 || i >= 90 || i % 2 == 0 || i % 3 == 0 || i % 5 == 0 || i % 7 == 0 || i % 11 == 0)) {
ll u = E[i-3];
u = u * (ll)65535 + (ll)E[i-2];
u = u * (ll)65535 + (ll)E[i-1];
u = u * (ll)65535 + (ll)E[i];
s.insert(u);
}
}
for (set<ll> :: iterator it = s.begin(); it != s.end(); it++) v.push_back(*it);
int maxim = -1, maxiv = -1, koji = 0;
for (int i = 0; i < 56; i++) {
int kolm = 0, kolv = 0;
for (int j = 0; j < v.size(); j++) {
if (m[i].find(v[j]) != m[i].end()) {
if (v[j] > (ll)65535*(ll)65535*(ll)65534) kolv++;
else kolm++;
}
//if (j > 1 && m[i][(long long)65535*(long long)65535*(long long)v[j-2]+(long long)65535*(long long)v[j-1]+(long long)v[j]]) kol++;
}
if (kolm+kolv > maxim+maxiv || (kolm+kolv+5 > maxim+maxiv && kolv > maxiv)) {
if (kolm+kolv >= maxim+maxiv+4 || kolv >= maxiv) {
maxim = kolm;
maxiv = kolv;
koji = i;
}
}
}
int pravi = language(koji);
for (int i = 0; i < v.size(); i++) {
m[pravi][v[i]]++;
//if (i > 1) m[pravi][(long long)65535*(long long)65535*(long long)v[i-2]+(long long)65535*(long long)v[i-1]+(long long)v[i]]++;
}
}
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |