Submission #685297

#TimeUsernameProblemLanguageResultExecution timeMemory
685297grossly_overconfident버섯 세기 (IOI20_mushrooms)C++17
Compilation error
0 ms0 KiB
#include "mushrooms.h"
#include <bits/stdc++.h>
using namespace std;

vector<int> decipher(int a, int b, int c) {
	vector<int> m = { a, 0, b, c };
	int c1 = use_machine(m);
	if (c1 == 0) {
		m = { 0, 0, 0 };
		return m;
	}
	if (c1 == 3) {
		m = { 1, 1, 0 };
		return m;
	}
	if (c1 == 2) {
		m = { b, a, 0, c };
		c1 = use_machine(m);
		if (c1 == 1) {
			m = { 0, 1, 0 };
		}
		else if (c1 == 3) {
			m = { 1, 0, 1 };
		}
		else if (c1 == 2) {
			m = { 1, 1, 1 };
		}
		return m;
	}
	m = { b, 0, c };
	c1 = use_machine(m);
	if (c1 == 0) {
		m = { 1, 0, 0 };
	}
	else if (c1 == 1) {
		m = { 0, 0, 1 };
	}
	else if (c1 == 2) {
		m = { 0, 1, 1 };
	}
	return m;
}

int count_mushrooms(int n) {
	int count = 0;
	int i = 0;
	while (i + 2 <= n - 1) {
		vector<int> take = decipher(i, i + 1, i + 2);
		if (take[0] == 0) {
			++count;
		}
		if (take[1] == 0) {
			++count;
		}
		if (take[2] == 0) {
			++count;
		}
		i += 3;
	}
	if ((n - 1) % 3 == 1) {
		if (use_machine(n - 1, 0) == 0) {
			++count;
		}
	}
	if ((n - 1) % 3 == 2) {
		int take2 = use_machine(n - 1, 0, n - 2)
		if (take2 == 0) {
			count += 2;
		}
		else if (take2 == 1) {
			++count;
		}
	}
	return count;
}

Compilation message (stderr)

mushrooms.cpp: In function 'int count_mushrooms(int)':
mushrooms.cpp:61:21: error: could not convert '(n - 1)' from 'int' to 'std::vector<int>'
   61 |   if (use_machine(n - 1, 0) == 0) {
      |                   ~~^~~
      |                     |
      |                     int
mushrooms.cpp:66:29: error: could not convert '(n - 1)' from 'int' to 'std::vector<int>'
   66 |   int take2 = use_machine(n - 1, 0, n - 2)
      |                           ~~^~~
      |                             |
      |                             int
mushrooms.cpp:66:7: warning: unused variable 'take2' [-Wunused-variable]
   66 |   int take2 = use_machine(n - 1, 0, n - 2)
      |       ^~~~~