답안 #151990

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
151990 2019-09-05T19:43:14 Z minty99 King of Chairs (FXCUP4_chairs) C++17
95 / 100
584 ms 13500 KB
#include "king.h"
#include <algorithm>

long long SendInfo(std::vector<int> W, std::vector<int> C) {
	sort(W.begin(), W.end());
	sort(C.begin(), C.end());
	int last = 0;
	long long ans = 0;
	for(int w : W)
	{
		while(last < C.size() && w > C[last]) last++;
		if(last < C.size() && w <= C[last]) ans = w;
	}
	return ans;
}
#include "vassal.h"
#include <algorithm>
#include <utility>
typedef std::pair<int, int> pii;

long long BB;
std::vector<pii> CC;
int isSeated[1100000];
void Init(long long B, std::vector<int> C){
	int N = C.size();
	BB = B;
	for(int i = 0; i < N; i++)
		CC.emplace_back(C[i], i);
	sort(CC.begin(), CC.end());
	for(int i = 0; i < 1100000; i++) isSeated[i] = -1;
}

int Maid(int W) {
	if(W > BB) return -1;
	auto it = lower_bound(CC.begin(), CC.end(), pii(W, -1));
	if(it == CC.end()) return -1;
	int orig_pos = it->second, pos = it->second;
	while(isSeated[pos] >= 0) pos = isSeated[pos]+1;
	if(pos >= CC.size()) return -1;
	isSeated[orig_pos] = pos;
	isSeated[pos] = pos;
	// printf("W = %d orig = %d pos = %d\n", W, orig_pos, pos);
	return pos;
}

Compilation message

king.cpp: In function 'long long int SendInfo(std::vector<int>, std::vector<int>)':
king.cpp:11:14: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   while(last < C.size() && w > C[last]) last++;
         ~~~~~^~~~~~~~~~
king.cpp:12:11: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   if(last < C.size() && w <= C[last]) ans = w;
      ~~~~~^~~~~~~~~~

vassal.cpp: In function 'int Maid(int)':
vassal.cpp:24:9: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  if(pos >= CC.size()) return -1;
     ~~~~^~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 8 ms 5112 KB Correct
2 Correct 7 ms 5112 KB Correct
3 Correct 8 ms 5104 KB Correct
4 Correct 8 ms 5108 KB Correct
5 Correct 8 ms 5112 KB Correct
# 결과 실행 시간 메모리 Grader output
1 Correct 56 ms 7972 KB Correct
2 Correct 122 ms 10216 KB Correct
3 Correct 566 ms 10804 KB Correct
4 Correct 111 ms 13476 KB Correct
5 Correct 126 ms 13328 KB Correct
6 Correct 126 ms 13368 KB Correct
7 Correct 584 ms 13436 KB Correct
# 결과 실행 시간 메모리 Grader output
1 Partially correct 62 ms 7992 KB B = 999992
2 Partially correct 107 ms 10252 KB B = 999980
3 Partially correct 181 ms 10676 KB B = 996891
4 Partially correct 118 ms 13500 KB B = 999968
5 Partially correct 115 ms 13320 KB B = 999982
6 Partially correct 115 ms 13312 KB B = 999987
7 Partially correct 194 ms 13340 KB B = 997852
8 Correct 92 ms 13496 KB Correct