답안 #150596

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
150596 2019-09-01T08:42:10 Z Welcome to osu!(#3734, easrui, CodePlatina, jhwest2) King of Chairs (FXCUP4_chairs) C++17
100 / 100
113 ms 7000 KB
#include "king.h"

long long SendInfo(std::vector<int> W, std::vector<int> C) {
	return 0;
}
#include "vassal.h"
#include <bits/stdc++.h>
#define va first
#define vb second
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;

int N, cnt;
int parent[101010];
vector<pii> CC;

int Find(int a) {
	if (parent[a] == a) return a;
	return parent[a] = Find(parent[a]);
}
void Union(int a, int b) {
	if (Find(a) == Find(b)) return;
	parent[Find(b)] = Find(a);
}

void Init(long long B, std::vector<int> C){
	N = C.size();
	CC.resize(N);

	for (int i=0; i<N; i++) {
		CC[i].va = C[i];
		CC[i].vb = i;
	}

	sort(CC.begin(), CC.end());

	for (int i=0; i<=N; i++) parent[i] = i;
	return;
}

int Maid(int W){
	++cnt;
	vector<pii>::iterator lb = lower_bound(CC.begin(), CC.end(), pii(W, 0));
	int idx = lb - CC.begin();

	if (Find(idx) == N) return -1;
	int ans = CC[Find(idx)].vb;
	Union(Find(idx)+1, Find(idx));

	return ans;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 10 ms 800 KB Correct
2 Correct 10 ms 1060 KB Correct
3 Correct 11 ms 804 KB Correct
4 Correct 10 ms 972 KB Correct
5 Correct 11 ms 1016 KB Correct
# 결과 실행 시간 메모리 Grader output
1 Correct 63 ms 4156 KB Correct
2 Correct 92 ms 6468 KB Correct
3 Correct 100 ms 6980 KB Correct
4 Correct 97 ms 6988 KB Correct
5 Correct 98 ms 6864 KB Correct
6 Correct 96 ms 7000 KB Correct
7 Correct 99 ms 6988 KB Correct
# 결과 실행 시간 메모리 Grader output
1 Correct 66 ms 4172 KB Correct
2 Correct 111 ms 6440 KB Correct
3 Correct 108 ms 6948 KB Correct
4 Correct 112 ms 7000 KB Correct
5 Correct 111 ms 6988 KB Correct
6 Correct 113 ms 6992 KB Correct
7 Correct 108 ms 6988 KB Correct
8 Correct 102 ms 6996 KB Correct