Submission #1075155

#TimeUsernameProblemLanguageResultExecution timeMemory
1075155allin27x비스킷 담기 (IOI20_biscuits)C++17
33 / 100
908 ms2097152 KiB
#include <bits/stdc++.h>
using namespace std;
#include "biscuits.h"
#define int long long

long long count_tastiness(long long x, std::vector<long long> a) {
	a.resize(a.size()+65, 0);
	int extra = 0;
	for (int i=0; i<a.size(); i++) {
		extra/=2; a[i] += extra; extra = 0;
		if (a[i] < x+2) continue;
		if ((a[i]-x)&1) {
			extra = a[i] - x - 1; a[i] = x+1;
		} else {
			extra = a[i] - x; a[i] = x;
		}
	}
	int n = a.size();
	vector dp(n, vector<int> (x+1, 0));
	for (int i=0; i<x+1; i++) dp[n-1][i] = i+1;
	for (int i=n-2; i>=0; i--) {
		for (int inc =0; inc<x+1; inc++) {
			if (inc + a[i] < x) {
				dp[i][inc] = dp[i+1][(inc+a[i])/2];
			} else {
				dp[i][inc] = dp[i+1][(inc+a[i])/2] + dp[i+1][(inc+a[i]-x)/2];
			}
		}
	}
	return dp[0][0];
}

Compilation message (stderr)

biscuits.cpp: In function 'long long int count_tastiness(long long int, std::vector<long long int>)':
biscuits.cpp:9:17: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    9 |  for (int i=0; i<a.size(); i++) {
      |                ~^~~~~~~~~
#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...