제출 #1206022

#제출 시각아이디문제언어결과실행 시간메모리
1206022bangan비스킷 담기 (IOI20_biscuits)C++20
0 / 100
11 ms17728 KiB
#include "biscuits.h"
#include <bits/stdc++.h>

using i64 = long long;

long long count_tastiness(long long x, std::vector<long long> a) {
	for (int i = 0; i < a.size(); i++) {
		if (a[i] > x + 1 && i + 1 == a.size()) {
			a.push_back(0);
		}
		if (a[i] > x + 1) {
			i64 t = (a[i] - x) / 2;
			a[i] -= 2 * t;
			a[i + 1] += t;
		}
	}
	int k = a.size();

	constexpr int c = 50;
	std::vector f(k + 1, std::vector<i64>(2 * x + c + 1));

	fill(f[k].begin(), f[k].end() + x, 1);
	for (int i = k - 1; i >= 0; i--) {
		for (int n = 0; n <= 2 * x + 10; n++) {
			int cur = n + a[i];
			f[i][n] = f[i + 1][cur / 2];
			if (cur >= x) {
				f[i][n] += f[i + 1][(cur - x) / 2];
			}
		}
	}
	return f[0][0];
}

#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...