답안 #1045199

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1045199 2024-08-05T18:43:27 Z beaconmc 커다란 상품 (IOI17_prize) C++14
0 / 100
1 ms 1112 KB
#include "prize.h"

#include <bits/stdc++.h>
 
typedef int ll;
#define FOR(i,x,y) for(ll i=x; i<y; i++)
#define FORNEG(i,x,y) for(ll i=x; i>y; i--)
 
using namespace std;


map<ll, vector<ll>> cache;

vector<ll> query(int n){

	if (cache.count(n)) return cache[n];
	else return cache[n] = ask(n);
}


int find_best(int n) {
	cache.clear();
	vector<ll> stuff(n);

	FOR(i,0,n) stuff[i] = i;
	

	vector<ll> found;

	ll ans = -1;


	while (ans == -1){


		ll lo = 0;
		ll hi = stuff.size()-1;
		bool skip = false;
		while (lo < hi){

			cout << lo << " " << hi << endl;

			ll mid = (lo+hi)/2;



			vector<ll> sus = query(stuff[mid]);


			if (sus[0] + sus[1] < 500){
					
				if (sus[0]+sus[1]==0) return stuff[mid];
				found.push_back(stuff[mid]);
				stuff.erase(stuff.begin()+mid);
				skip = true;
				break;
			}else{
				sort(found.begin(), found.end());
				ll idk = upper_bound(found.begin(), found.end(), stuff[mid]) - found.begin();
				if (idk < sus[0]){
					hi = mid;
				}else{
					lo = mid+1;
				}
			}
		}
		if (skip) continue;
		cout << lo << endl;

		vector<ll> sus = query(lo);
		if (sus[0]+sus[1]==0) return stuff[lo];
		found.push_back(stuff[lo]);
		stuff.erase(stuff.begin()+lo);

	}
	return 0;

}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 1112 KB Token "0" doesn't correspond to pattern "[A-B]{1}"
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 1112 KB Token "0" doesn't correspond to pattern "[A-B]{1}"
2 Halted 0 ms 0 KB -