Submission #834169

# Submission time Handle Problem Language Result Execution time Memory
834169 2023-08-22T11:30:14 Z faruk Packing Biscuits (IOI20_biscuits) C++17
Compilation error
0 ms 0 KB
#include "biscuits.h"
#include <bits/stdc++.h>
#define all(a) a.begin(), a.end()

using namespace std;
typedef long long ll;

const ll maxsum = 1e5+1;
const ll maxsiz = 71;

long long count_tastiness(long long x, std::vector<long long> a) {
	if (x == 1) {
		ll out = 1;
		a.resize(maxsiz);
		for (int i = 0; i < a.size()-1; i++) {
			ll to_remove = 0;
			if (a[i] % 2)
				to_remove = a[i] - 1LL;
			else if (a[i] > 0)
				to_remove = a[i] - 2LL;
			
			a[i + 1] += to_remove / 2LL;
			a[i] -= to_remove;
		}

		ll has_l = 0, hasnt_l = 1;
		for (int i = 0; i < a.size(); i++) {
			if (a[i] == 0) {
				out *= has_l + hasnt_l;
				has_l = 0, hasnt_l = 1;
			} else {
				if (a[i] == 2) {
					has_l += hasnt_l;
				hasnt_l *= 2LL;
			}
		}
		return out;
	}

	x = 1;
	ll out = 0;
	a.resize(61);
	for (int val = 0; val < maxsum; val++) {
		vector<ll> curr = a;
		int num = 0;
		bool ok = true;
		for (ll a = 0; a < curr.size(); a++) {
			num += curr[a];
			if ((val & (1LL <<a)) != 0)
			{
				if (num < x)
					ok = false;
				else	
					num -= x;
			}
			num /= 2;
		}
		if (ok)
			out++;
	}

	return out;
}

// 0 1 2 3 4 5 6 7 8 9 10 

Compilation message

biscuits.cpp: In function 'long long int count_tastiness(long long int, std::vector<long long int>)':
biscuits.cpp:15:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   15 |   for (int i = 0; i < a.size()-1; i++) {
      |                   ~~^~~~~~~~~~~~
biscuits.cpp:27:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   27 |   for (int i = 0; i < a.size(); i++) {
      |                   ~~^~~~~~~~~~
biscuits.cpp:41:5: error: redeclaration of 'll out'
   41 |  ll out = 0;
      |     ^~~
biscuits.cpp:13:6: note: 'll out' previously declared here
   13 |   ll out = 1;
      |      ^~~
biscuits.cpp:47:20: 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]
   47 |   for (ll a = 0; a < curr.size(); a++) {
      |                  ~~^~~~~~~~~~~~~
biscuits.cpp:63:1: error: expected '}' at end of input
   63 | }
      | ^
biscuits.cpp:11:66: note: to match this '{'
   11 | long long count_tastiness(long long x, std::vector<long long> a) {
      |                                                                  ^
biscuits.cpp:63:1: warning: control reaches end of non-void function [-Wreturn-type]
   63 | }
      | ^