문제
https://www.acmicpc.net/problem/20006
접근방법
..
코드
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
#define FOR(i, n) for(int i=0;i<n;i++)
#define FASTERIO ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
int p, m;
vector<int> gijun;
vector<vector<pair<int, string>>> bang;
bool insert(int temp, string name) {
FOR(i, bang.size()) {
if (bang[i].size() < m)
if (temp <= gijun[i] + 10 && temp >= gijun[i] - 10) {
bang[i].push_back({temp, name});
return true;
}
}
return false;
}
int main() {
FASTERIO
cin >> p >> m;
FOR(i, p) {
int temp; string name;
cin >> temp >> name;
//들어갈 방이 있으면 넣고, 아니면 방새로 생성.
if (!insert(temp, name)) {
bang.push_back({{temp, name}});
gijun.push_back(temp);
}
}
FOR(i, bang.size()) {
if (bang[i].size() == m)
cout << "Started!" << "\n";
else
cout << "Waiting!" << '\n';
sort(bang[i].begin(), bang[i].end(), [](pair<int, string> a, pair<int, string> b) {
return a.second < b.second;
});
FOR(j, bang[i].size()) cout << bang[i][j].first << " " << bang[i][j].second << "\n";
}
return 0;
}
결과
개선할 점
처음엔 정렬을 안해서, 두번 째는 Waiting일 때 플레이어를 출력하지 않아서 틀렸다.
제출하기 전에 문제를 꼼꼼히 다시 읽어보는 습관을 가져야겠다.