제출 #388833

#제출 시각아이디문제언어결과실행 시간메모리
388833kshitij_sodaniMinerals (JOI19_minerals)C++14
40 / 100
98 ms6336 KiB
//#pragma GCC optimize("Ofast,unroll-loops")
#include <bits/stdc++.h>
using namespace std;
typedef long long llo;
#define mp make_pair
#define pb push_back
#define a first 
#define b second
#define endl '\n'

#include "minerals.h"
vector<pair<int,int>> ans;
set<int> xx;
void solve(vector<int> aa,vector<int> bb){

	if(aa.size()==1){
		ans.pb({aa[0],bb[0]});
		return;
	}
	int cur=0;
	vector<int> cc;
	vector<int> dd;
	vector<int> ee;
	vector<int> ff;
	map<int,int> ss;
	map<int,int> tt;
	for(auto j:xx){
		ss[j]++;
	}

	for(int i=0;i<aa.size();i++){
		if(i*2>=aa.size()){
			dd.pb(aa[i]);
			continue;
		}
//		cur=Query(aa[i]);
		cc.pb(aa[i]);
		tt[aa[i]]++;
	}

	for(auto j:tt){
		if(ss.find(j.a)==ss.end()){
			xx.insert(j.a);
			Query(j.a);
		}
	}
	for(auto j:ss){
		if(tt.find(j.a)==tt.end()){
			xx.erase(j.a);
			Query(j.a);
		}
	}
	cur=cc.size();
	for(int i=0;i<bb.size();i++){
		int cur2=Query(bb[i]);
		Query(bb[i]);
		if(cur2==cur){
			ee.pb(bb[i]);
			continue;
		}
		ff.pb(bb[i]);
	}
	
	solve(cc,ee);
	solve(dd,ff);
}
void Solve(int n) {
	vector<int> aa;
	vector<int> bb;
	int cur5=0;
	for(int i=1;i<=2*n;i++){
		int cur2=Query(i);
		if(cur2>cur5){
			aa.pb(i);
			cur5=cur2;
			continue;
		}
		bb.pb(i);
		Query(i);
	}
	for(auto j:aa){
		Query(j);
	}

	solve(aa,bb);

  	for (int i=0; i<n;i++) {
    	Answer(ans[i].a,ans[i].b);
  	}
}

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

minerals.cpp: In function 'void solve(std::vector<int>, std::vector<int>)':
minerals.cpp:31:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   31 |  for(int i=0;i<aa.size();i++){
      |              ~^~~~~~~~~~
minerals.cpp:32:9: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   32 |   if(i*2>=aa.size()){
      |      ~~~^~~~~~~~~~~
minerals.cpp:54:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   54 |  for(int i=0;i<bb.size();i++){
      |              ~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...