This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "king.h"
long long SendInfo(std::vector<int> W, std::vector<int> C) {
	return 0;
}
#include "vassal.h"
#include <algorithm>
std::vector<std::pair<int, int>> chair;
void Init(long long B, std::vector<int> C){
	int N = C.size();
	for (int i = 0; i < N; i++) {
		chair.push_back(std::pair<int,int>(C[i], i));
	}
	sort(chair.begin(), chair.end());
}
int findidx(int first, int last, int weight) {
	int mid;
	while (first <= last) {
		mid = (first + last) / 2;
		if (chair[mid].first > weight) {
			if (mid != 0 && chair[mid - 1].first < weight) {
				return mid;
			}
			last = mid - 1;
		}
		else if (chair[mid].first == weight) {
			if (mid != 0 && chair[mid - 1].first == weight && chair[mid-1].second != -1) {
				last = mid - 1;
			}
			else {
				return mid;
			}
		}
		else {
			first = mid + 1;
		}
	}
	return -1;
}
int Maid(int W){
	int first = 0, last = (int)chair.size() - 1;
	int idx;
	while (1) {
		idx = findidx(first, last, W);
		if (idx == -1) {
			return -1;
		}
		if (chair[idx].second != -1) {
			int temp = chair[idx].second;
			chair[idx].second = -1;
			return temp;
		}
		else {
			first = idx + 1;
		}
	}
	return -1;
}
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |