Submission #1083112

#TimeUsernameProblemLanguageResultExecution timeMemory
1083112beaconmcPacking Biscuits (IOI20_biscuits)C++14
0 / 100
1069 ms420 KiB
#include "biscuits.h"
#include <bits/stdc++.h>
 
typedef long long ll;
#define FOR(i,x,y) for(ll i=x; i<y; i++)
#define FORNEG(i,x,y) for(ll i=x; i>y; i--)
 
using namespace std;


vector<ll> A(17);
ll X;

// unordered_map<ll,ll> dps;


// ll hashs(ll a, ll b){
// 	return b*18 + a;
// }
// ll cnt = 0;
// ll dp(ll pos, ll add){
// 	cnt++;

// 	if (dps.count(hashs(pos, add))) return dps[hashs(pos, add)];
// 	if (pos>=A.size()) return 1;

// 	ll temp = 0;
// 	if (add==0){
// 		ll cur = 0;
// 		while (cur <= X && cur <= A[pos]){
// 			temp += dp(pos+1, (A[pos]-cur)/2);
// 			cur += X;
// 		}

// 	}else{
// 		ll idk = (A[pos] + add);
// 		ll cur = 0;
// 		while (cur <= X && cur <= idk){
// 			temp += dp(pos+1, (idk-cur)/2);
// 			cur += X;
// 		}
// 	}
// 	dps[hashs(pos, add)] = temp;
// 	return temp;
// }
long long count_tastiness(long long x, std::vector<long long> a) {
	X = x;
	FOR(i,0,200) A[i] = 0;
	// dps.clear();
	// dps.reserve(1<<19);

	FOR(i,0,A.size()) A[i] = a[i];
	ll ans = 0;

	FOR(cnt,0,200001){
		ll carry = 0;
		bool flag = false;
		FOR(i,0,16){
			carry += A[i];
			if (cnt & (1<<i)){
				if (carry < x){
					flag = true;
					break;
				}
				carry -= x;
			}
			carry /= 2;
		}
		if (!flag) ans++;
		
	}
	return ans;





}

Compilation message (stderr)

biscuits.cpp: In function 'long long int count_tastiness(long long int, std::vector<long long int>)':
biscuits.cpp:5:33: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    5 | #define FOR(i,x,y) for(ll i=x; i<y; i++)
......
   52 |  FOR(i,0,A.size()) A[i] = a[i];
      |      ~~~~~~~~~~~~                
biscuits.cpp:52:2: note: in expansion of macro 'FOR'
   52 |  FOR(i,0,A.size()) A[i] = a[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...