답안 #303726

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
303726 2020-09-20T15:19:55 Z kylych03 버섯 세기 (IOI20_mushrooms) C++14
0 / 100
0 ms 256 KB
#include <bits/stdc++.h>
#include "mushrooms.h"
//#include "stub.cpp"
using namespace std;
int count_mushrooms(int n) {
	vector<int> m;
	vector <int> a,b;
	srand(time(0));
	for (int i = 0; i < n; i++)
		m.push_back(i);
    random_shuffle(m.begin()+1, m.end());
    int cnt = 0;
    int l=1;
    vector <int> vec1;
    vec1.push_back(0);
    vec1.push_back(m[1]);
    
    if(use_machine(vec1)==0)
    	a.push_back(m[1]);
    else
    	b.push_back(m[1]);
    vec1[1]=m[2];
	if(n>3)
    if(use_machine(vec1)==0)
    	a.push_back(m[2]);
    else
    	b.push_back(m[2]);
    l=3;
    cnt = a.size();
    while(l < n && max(a.size(), b.size()) <70 ){
    	if(a.size()>= b.size()){
    		vector <int> vec;
    		for(int i = 0 ; i < a.size() && l<n; i++, l++){
    			vec.push_back(a[i]);
    			vec.push_back(m[l]);
			}
			int res = use_machine(vec);
			if(res%2==1)
				b.push_back(vec[vec.size()-1]);
			else
				a.push_back(vec[vec.size()-1]);
			cnt +=(vec.size() - (res+1)/2);
		}
		else{
			vector <int> vec;
    		for(int i = 0 ; i < b.size() && l<n; i++, l++){
    			vec.push_back(b[i]);
    			vec.push_back(m[l]);
			}
			int res = use_machine(vec);
			if(res%2==0)
				b.push_back(vec[vec.size()-1]);
			else
				a.push_back(vec[vec.size()-1]);
			cnt +=((res+1)/2);
		}	
	}
	return cnt;
}

Compilation message

mushrooms.cpp: In function 'int count_mushrooms(int)':
mushrooms.cpp:23:4: warning: suggest explicit braces to avoid ambiguous 'else' [-Wdangling-else]
   23 |  if(n>3)
      |    ^
mushrooms.cpp:33:25: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   33 |       for(int i = 0 ; i < a.size() && l<n; i++, l++){
      |                       ~~^~~~~~~~~~
mushrooms.cpp:46:25: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 |       for(int i = 0 ; i < b.size() && l<n; i++, l++){
      |                       ~~^~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 256 KB Answer is not correct.
2 Halted 0 ms 0 KB -