제출 #1362788

#제출 시각아이디문제언어결과실행 시간메모리
1362788cowkim비스킷 담기 (IOI20_biscuits)C++20
0 / 100
1130 ms1189116 KiB
#include "biscuits.h"
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define DEBUG 0
int binarysearch(int x, vector<int>& arr){
	int l = -1;
	int r = arr.size();
	// cout << "startb" << endl;
	while(l+1 < r){
		int mid = (l+r)/2;
		if(arr[mid] <= x) l = mid;
		else r = mid;
	}
	// cout << "endb" << endl;
	// cout << l << endl;
	return l;
}
long long count_tastiness(long long x, std::vector<long long> a) {
	vector<int> answers = {0};
	int tot = 0;
	for(int bi = 0; bi <= 30; bi++){
		if(bi < a.size()) tot += a[bi] << bi;
		int needed = x*(1ll<<bi);
		int biggie = binarysearch(tot - needed,answers);
		for(int i = 0; i <= biggie; i++){
			answers.push_back(answers[i] + needed);
		}
	}
	// for(auto x : answers){
	// 	cout << x << " ";
	// }
	// cout << endl;
	return answers.size()-1;
}
#if DEBUG
signed main(){
	int n,x;
	cin >> n >> x;
	vector<int> a(n);
	for(auto& x : a) cin >> x;
	int ans = count_tastiness(x,a);
	cout << ans << endl;
}
#endif

#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…