알고리즘
[알고리즘] 백준 20006 - 랭킹전 대기열 (C++)
blueberrysoda
2024. 9. 10. 23:33
[문제 링크] : https://www.acmicpc.net/problem/20006
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main(){
int N, M;
cin >> N >> M;
vector<pair<string, int>> V[310];
for(int i=0; i<N; i++){
int inp;
string s;
bool f = false;
cin >> inp >> s;
for(int j=0; j<=i; j++){
if(V[j].size() < M && V[j].size() > 0){
if(abs(V[j][0].second - inp) <= 10){
f = true;
V[j].push_back({s, inp});
break;
}
}
}
if(f == false){
V[i].push_back({s, inp});
}
}
for(int i=0; i<300; i++){
if(V[i].size() == 0){
continue;
}
else if(V[i].size() >= M){
cout << "Started!\n";
}
else if(V[i].size() > 0 && V[i].size() < M){
cout << "Waiting!\n";
}
sort(V[i].begin(), V[i].end());
for(int j=0; j<V[i].size(); j++){
cout << V[i][j].second << " " << V[i][j].first << "\n";
}
}
return 0;
}