제출 #1226613

#제출 시각아이디문제언어결과실행 시간메모리
1226613ssafarovMinerals (JOI19_minerals)C++20
40 / 100
14 ms3144 KiB
#define Magic ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#pragma GCC optimize("Ofast")
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#include "minerals.h"
#define ll int
#define ld long long double
#define en '\n'
#define tsts int tetss; cin >> tetss; while(tetss--)
#define all(a) a.begin() , a.end()
#define pb push_back
#define ld long long double
#define fi first
#define se second

using namespace std;

int lst;
int op[100000] = {};

void func(vector<int> v, bool ok){
	vector<int> v1, v2;
	int st = lst;
	int gps = v.size() / 2;
	if(v.size() == 2){
		Answer(v[0], v[1]);
		return;
	}
	if(ok){
		int sb = (gps + 1) / 2;
		for(auto g : v){
			int nw = Query(g);
			if(nw == lst){
				if(sb){
					sb--;
					v1.push_back(g);
				}
				else{
					nw = Query(g);
					v2.push_back(g);
				}
			}else{
				v1.push_back(g);
			}
			lst = nw;
		}
	}else{
		int sb = (gps + 1) / 2;
		for(auto g : v){
			int nw = Query(g);
			if((nw - st) > sb){
				nw = Query(g);
				v2.push_back(g);
			}else{
				v1.push_back(g);
			}
			lst = nw;
		}
	}
	// if(ok == 1){
		// return;
	// }
	func(v1, !ok);
	func(v2, ok);
}

void Solve(int n){
	vector<int> v;
	for(int i = 1; i <= 2 * n; ++i){
		v.push_back(i);
	}
	func(v, 0);
}
#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...