답안 #65861

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
65861 2018-08-09T04:39:32 Z llllilll Languages (IOI10_languages) C++14
0 / 100
10000 ms 18336 KB
#include <stdlib.h>
#include <stdio.h>
#include <bits/stdc++.h>
#include "grader.h"
#include "lang.h"

#define SZ 100
typedef long long lld;
using namespace std;

const lld MUL = 100000;
const lld MUL2 = MUL*MUL;
static map<lld, int> word_list[56];
static lld precalc[65536][3];

bool isInit = false;
void excerpt(int *E) {
	if (!isInit) {
		for (int i = 0; i <= 55; i++) {
			word_list[i] = map<lld, int>();
		}
		for (lld i = 1; i <= 65535; i++) {
			precalc[i][1] = i*MUL;
			precalc[i][2] = i*MUL2;
		}
		isInit = true;
	}
	
	lld trigram_arr[SZ + 1];
	for (int i = 0; i < SZ; i++) {
		trigram_arr[i - 2] = precalc[E[i-2]][2] + precalc[E[i-1]][1] + E[i];
	}
	
	int maxs = 0, guess_ans = 0;

	for (int i = 0; i <= 55; i++) {
		int res = 0;

		for (int j = 0; j < SZ - 2; j++) {
			lld element = trigram_arr[j];
			if (word_list[i].count(element) != 0) {
				res += word_list[i][element];
			}
		}

		if (maxs < res) {
			guess_ans = i;
			maxs = res;
		}
	}

	int real_ans = language(guess_ans);

	for (int i = 0; i < SZ - 2; i++) {
		word_list[real_ans][trigram_arr[i]] += 1;
	}
}
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 10034 ms 17936 KB Time limit exceeded
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 10025 ms 18336 KB Time limit exceeded