답안 #520071

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
520071 2022-01-28T09:41:39 Z drkarlicio2107 Minerals (JOI19_minerals) C++14
컴파일 오류
0 ms 0 KB
#include <bits/stdc++.h>
#include "minerals.h"
using namespace std; vector <int> a, b;
int cnt=0;
int diff (int x){
	int a=Query (x);
	if (a!=cnt){
		cnt=a; return 1;
	}
	else{
		cnt=a; return 0;
	}
}
int solve (vector <int> a, vector <int> b, int x){
	random_shuffle (a.begin(), a.end());
	random_shuffle (b.begin(), b.end());
	if (a.size()==1){
		Answer (a[0], b[0]); return 0;
	}
	int mid=a.size()/2;
	vector <int> a1, a2, b1, b2;
	for(int i=0; i<a.size(); i++){
        if(i<mid) a1.push_back(a[i]);
        else a2.push_back(a[i]);
        if((i>=mid)^x) diff(a[i]);
    }
	for (int i=0; i<b.size(); i++){
		if (b1.size()==a1.size()) b2.push_back(b[i]);
		else if (b2.size()==a2.size()) b1.push_back(b[i]);
		else if ((diff (b[i])) b1.push_back(b[i]);
		else b2.push_back(b[i]);
	}
	solve (a1, b1, 0);
	solve (a2, b2, 1);
}
void Solve(int n){
	for (int i=1; i<2*n+1; i++){
		if (diff (i)) b.push_back(i);
		else a.push_back(i);
	}
	solve (a,b,1);
}

Compilation message

minerals.cpp: In function 'int solve(std::vector<int>, std::vector<int>, int)':
minerals.cpp:22:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   22 |  for(int i=0; i<a.size(); i++){
      |               ~^~~~~~~~~
minerals.cpp:27:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   27 |  for (int i=0; i<b.size(); i++){
      |                ~^~~~~~~~~
minerals.cpp:30:12: warning: init-statement in selection statements only available with '-std=c++17' or '-std=gnu++17'
   30 |   else if ((diff (b[i])) b1.push_back(b[i]);
      |            ^
minerals.cpp:30:25: error: expected ';' before 'b1'
   30 |   else if ((diff (b[i])) b1.push_back(b[i]);
      |                         ^~~
      |                         ;
minerals.cpp:31:3: error: expected primary-expression before 'else'
   31 |   else b2.push_back(b[i]);
      |   ^~~~
minerals.cpp:30:45: error: expected ')' before 'else'
   30 |   else if ((diff (b[i])) b1.push_back(b[i]);
      |           ~                                 ^
      |                                             )
   31 |   else b2.push_back(b[i]);
      |   ~~~~                                       
minerals.cpp:21:15: warning: control reaches end of non-void function [-Wreturn-type]
   21 |  vector <int> a1, a2, b1, b2;
      |               ^~