제출 #1359503

#제출 시각아이디문제언어결과실행 시간메모리
1359503FZ_Laabidi버섯 세기 (IOI20_mushrooms)C++20
컴파일 에러
0 ms0 KiB
#include "mushrooms.h"
int count_mushrooms(int n) {
	std::set<int> v;
	int q = 2*sqrt(n);
	std::set<int> a;
	a.insert(0);
	if(n<=226){
		int a = 0;
		for(int i=1; i<n; i++){
			a+=use_machine({0, i});
		}
		return a;
	}
	int first = use_machine({1, 0, 2});
	int touse, tovis =0;
	bool flag;
	if(first ==0){
		touse = 1;
		a.insert(1);
		a.insert(2);
	}
	else if(first==2) {
		touse=1; tovis = 2;
		v.insert(1);
		v.insert(2);
		flag = false;
	}
	else{
		first = use_machine({1, 0});
		if(first==1)touse = 2;
		else touse = 1;
		a.insert(1);
	}
	for(int i=3; i<q-1; i+=2){
		int x = use_machine({touse, i, tovis, i+1});
		if(flag){
			if(x%2==0){
				v.insert(i+1);
				if(x!=0)v.insert(i);
			}
			else{
				v.insert(i);
			}
		}
		else{
			if(x%2==0){
				a.insert(i+1);
				if(x!=0)a.insert(i);
			}
			else{
				a.insert(i);
			}
		}
		
	}
	int vv = v.size(), aa = a.size();
	bool flag = (vv<=aa);
	int fac = max(vv, aa);
	for(int i=q+1; i<n; i+=fac){
		vector<int> mm;
		if(flag){
		    int vo = 0;
			for(auto it: a){
				mm.push_back(it);
				mm.push_back(vo);
				vo++;
			}
			int vi = use_machine(mm);
			aa+=(fac-(vi+1)/2);
		}
		else{
			int vo = 0;
			for(auto it: v){
				mm.push_back(it);
				mm.push_back(vo);
				vo++;
			}
			int vi = use_machine(mm);
			aa+=(vi+1)/2;

		}
		
		return aa;
	}
}

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

mushrooms.cpp: In function 'int count_mushrooms(int)':
mushrooms.cpp:3:14: error: 'set' is not a member of 'std'
    3 |         std::set<int> v;
      |              ^~~
mushrooms.cpp:2:1: note: 'std::set' is defined in header '<set>'; did you forget to '#include <set>'?
    1 | #include "mushrooms.h"
  +++ |+#include <set>
    2 | int count_mushrooms(int n) {
mushrooms.cpp:3:18: error: expected primary-expression before 'int'
    3 |         std::set<int> v;
      |                  ^~~
mushrooms.cpp:4:19: error: 'sqrt' was not declared in this scope
    4 |         int q = 2*sqrt(n);
      |                   ^~~~
mushrooms.cpp:5:14: error: 'set' is not a member of 'std'
    5 |         std::set<int> a;
      |              ^~~
mushrooms.cpp:5:14: note: 'std::set' is defined in header '<set>'; did you forget to '#include <set>'?
mushrooms.cpp:5:18: error: expected primary-expression before 'int'
    5 |         std::set<int> a;
      |                  ^~~
mushrooms.cpp:6:9: error: 'a' was not declared in this scope
    6 |         a.insert(0);
      |         ^
mushrooms.cpp:24:17: error: 'v' was not declared in this scope
   24 |                 v.insert(1);
      |                 ^
mushrooms.cpp:38:33: error: 'v' was not declared in this scope
   38 |                                 v.insert(i+1);
      |                                 ^
mushrooms.cpp:42:33: error: 'v' was not declared in this scope
   42 |                                 v.insert(i);
      |                                 ^
mushrooms.cpp:56:18: error: 'v' was not declared in this scope; did you mean 'vv'?
   56 |         int vv = v.size(), aa = a.size();
      |                  ^
      |                  vv
mushrooms.cpp:57:14: error: redeclaration of 'bool flag'
   57 |         bool flag = (vv<=aa);
      |              ^~~~
mushrooms.cpp:16:14: note: 'bool flag' previously declared here
   16 |         bool flag;
      |              ^~~~
mushrooms.cpp:57:26: error: 'aa' was not declared in this scope
   57 |         bool flag = (vv<=aa);
      |                          ^~
mushrooms.cpp:58:19: error: 'max' was not declared in this scope; did you mean 'std::max'?
   58 |         int fac = max(vv, aa);
      |                   ^~~
      |                   std::max
In file included from /usr/include/c++/13/vector:62,
                 from mushrooms.h:1,
                 from mushrooms.cpp:1:
/usr/include/c++/13/bits/stl_algobase.h:303:5: note: 'std::max' declared here
  303 |     max(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
mushrooms.cpp:60:17: error: 'vector' was not declared in this scope
   60 |                 vector<int> mm;
      |                 ^~~~~~
mushrooms.cpp:60:17: note: suggested alternatives:
In file included from /usr/include/c++/13/vector:66:
/usr/include/c++/13/bits/stl_vector.h:428:11: note:   'std::vector'
  428 |     class vector : protected _Vector_base<_Tp, _Alloc>
      |           ^~~~~~
/usr/include/c++/13/vector:86:13: note:   'std::pmr::vector'
   86 |       using vector = std::vector<_Tp, polymorphic_allocator<_Tp>>;
      |             ^~~~~~
mushrooms.cpp:60:24: error: expected primary-expression before 'int'
   60 |                 vector<int> mm;
      |                        ^~~
mushrooms.cpp:64:33: error: 'mm' was not declared in this scope
   64 |                                 mm.push_back(it);
      |                                 ^~
mushrooms.cpp:68:46: error: 'mm' was not declared in this scope
   68 |                         int vi = use_machine(mm);
      |                                              ^~
mushrooms.cpp:74:33: error: 'mm' was not declared in this scope
   74 |                                 mm.push_back(it);
      |                                 ^~
mushrooms.cpp:78:46: error: 'mm' was not declared in this scope
   78 |                         int vi = use_machine(mm);
      |                                              ^~