Submission #153518

#TimeUsernameProblemLanguageResultExecution timeMemory
153518phparkKing of Chairs (FXCUP4_chairs)C++17
17 / 100
1115 ms10156 KiB
#include "king.h" using namespace std; long long SendInfo(vector <int> W, vector <int> C) { return 1; }
#include <set> #include <iostream> #include <vector> #include <algorithm> #include <utility> #include "vassal.h" using namespace std; static multiset <int> sit; static vector <pair<int, int>> chair; static int N; typedef pair <int, int> pii; pii p; void Init(long long B, vector <int> C) { N = C.size(); for (int i = 0; i < N; i++) { p.first = C[i]; p.second = i; chair.push_back(p); } for (int i = 0; i < N; i++) sit.insert(chair[i].first); } int Maid(int w) { int left = 0, right = N; auto itr = sit.lower_bound(w); if (itr == sit.end()) { return -1; } else { int ans = *itr; //고른 의자 무게 int idx = 0; //고른 의자가 현재의자배열의 어디에 있는가 while (left <= right) { int mid = (right + left) / 2; if (ans < chair[mid].first) { right = mid - 1; } else if (chair[mid].first < ans) { left = mid + 1; } else { idx = mid; break; } } //if (idx == 0)idx = right; int chair_num = chair[idx].second; //고른 의자의 원래 배열의 인덱스 chair.erase(chair.begin()+idx); sit.erase(itr); return chair_num; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...