랭킹전 대기열 - 20006
2025. 2. 13. 09:57ㆍPS/백준
문제
https://www.acmicpc.net/problem/20006
느낀점
이전에 비슷한 문제를 풀었던 것 같다. 최대한 문제를 많이 풀어보자 ! map, pair에서 오류를 찾지 못해 한동안 헤맸다. map, pair등 stl에 익숙해지자!
풀이
#include <iostream>
#include <vector>
#include <map>
#include <string>
#include <algorithm>
#define pii pair<int, string>
using namespace std;
int main()
{
int p, m;
cin >> p >> m;
map<int, vector<pii>> room;
int startNumber = 0;
for (int i = 0; i < p; i++)
{
int l;
string n;
bool newRoom = true;
cin >> l >> n;
if (room.empty())
{
room[startNumber].push_back(make_pair(l, n));
continue;
}
for (auto roomPair : room)
{
if (abs(roomPair.second[0].first - l) <= 10 && roomPair.second.size() < m)
{
room[roomPair.first].push_back(make_pair(l, n));
newRoom = false;
break;
}
}
if (newRoom)
{
startNumber++;
room[startNumber].push_back(make_pair(l, n));
}
}
for (auto roomPair : room)
{
sort(roomPair.second.begin(), roomPair.second.end(), [](const pii &a, const pii &b)
{ return a.second < b.second; });
if (roomPair.second.size() == m)
{
cout << "Started!" << "\n";
}
else
{
cout << "Waiting!" << "\n";
}
for (size_t i = 0; i < roomPair.second.size(); i++)
{
cout << roomPair.second[i].first << " " << roomPair.second[i].second << "\n";
}
}
return 0;
}
'PS > 백준' 카테고리의 다른 글
10025 - 게으른 백곰 (0) | 2025.02.13 |
---|---|
30804 - 과일 탕후루 (0) | 2025.02.13 |
11899 - 괄호 끼워넣기 (0) | 2025.02.13 |
단어 뒤집기 2 - 17413 (0) | 2025.02.13 |
가장 큰 증가하는 부분 수열 - 11055 (0) | 2025.02.13 |