제출 #781038

#제출 시각아이디문제언어결과실행 시간메모리
781038Josia버섯 세기 (IOI20_mushrooms)C++17
0 / 100
1 ms208 KiB
#include "mushrooms.h"
#include <bits/stdc++.h>
using namespace std;

int count_mushrooms(int n) {
	vector<int> is = {0}, isnot;

	int pos = 1;
	while(pos < n && is.size()<100 && isnot.size()<100) {
		if (use_machine({0, pos})) isnot.push_back(pos);
		else is.push_back(pos);

		pos++;
	}

	if (is.size() > isnot.size()) {
		vector<int> check;
		int res = is.size();
		for (int i = pos; i<n; i+=is.size()) {
			for (int j = i; j<i+is.size(); j++) {
				check.push_back(is[j-i]);
				check.push_back(j);
			}
		}
		int ans;
		if (check.empty()) ans = 0;

		else ans = use_machine(check);

		res += (ans+1)/2;
		return res;
	}

	else {
		vector<int> check;
		int res = isnot.size();
		for (int i = pos; i<n; i+=isnot.size()) {
			for (int j = i; j<i+isnot.size(); j++) {
				check.push_back(isnot[j-i]);
				check.push_back(j);
			}
		}
		int ans;
		if (check.empty()) ans = 0;

		else ans = use_machine(check);

		res += (ans+1)/2;
		res = n-res;
		return res;
	}
}

컴파일 시 표준 에러 (stderr) 메시지

mushrooms.cpp: In function 'int count_mushrooms(int)':
mushrooms.cpp:20:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   20 |    for (int j = i; j<i+is.size(); j++) {
      |                    ~^~~~~~~~~~~~
mushrooms.cpp:38:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   38 |    for (int j = i; j<i+isnot.size(); j++) {
      |                    ~^~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...