답안 #1029976

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1029976 2024-07-21T15:16:43 Z Tob Languages (IOI10_languages) C++14
0 / 100
4293 ms 262144 KB
#include <bits/stdc++.h>

#include "grader.h"
#include "lang.h"

#define F first
#define S second
#define all(x) x.begin(), x.end()
#define pb push_back
#define FIO ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0)

using namespace std;

typedef long long ll;
typedef pair <int, int> pii;
typedef pair <ll, ll> pll;
typedef array <int, 56> sc;

const int siz = 100, le = 10, B = 31337, mod1 = 1e9 + 7, mod2 = 1e9 + 9;

map <pll, sc> m;

sc score(pll h, int c) {
	sc res;
	for (int i = 0; i < 56; i++) res[i] = m[h][i]*c*c;
	return res;
}

void excerpt(int* arr) {
	sc res;
	for (int i = 0; i < siz; i++) {
		pll h = {0, 0};
		for (int j = i; j < min(siz, i+le); j++) {
			h.F = (h.F*B+arr[j])%mod1;
			h.S = (h.S*B+arr[j])%mod2;
			sc d = score(h, j-i+1);
			for (int k = 0; k < 56; k++) res[k] += d[k];
		}
	}
	int x = 0;
	for (int i = 1; i < 56; i++) if (res[i] > res[x]) x = i;
	int y = language(x);
	for (int i = 0; i < siz; i++) {
		pll h = {0, 0};
		for (int j = i; j < min(siz, i+le); j++) {
			h.F = (h.F*B+arr[j])%mod1;
			h.S = (h.S*B+arr[j])%mod2;
			m[h][y]++;
		}
	}
}
# 결과 실행 시간 메모리 Grader output
1 Runtime error 3812 ms 262144 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 4293 ms 262144 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -