[SHAKE][2019] 예선 2번 풀이
풀이
본 풀이는 부분 점수 (100점/140점)을 받은 풀이입니다.
- 모든 선물을 0시간에 처리할 수 있으므로 a와 b의 vector에 선물 포장의 번호를 넣는다.
- 모든 과정이 끝나면 a와 b를 차례로 돌면서 넣었던 값들을 출력한다.
본 대회의 문제를 다시 볼 수 있게 되면 추가적인 풀이를 작성하겠습니다.
코드
#include <iostream>
#include <string>
#include <vector>
using namespace std;
string s;
int A,B,N;
int t, h; //시간, howmany
char p; //포장지
int cnt = 0;
vector<int> a;
vector<int>::iterator it;
vector<int> b;
int main(void) {
scanf("%d %d %d", &A, &B, &N); getchar();
for (int i = 0; i < N; i++) {
scanf("%d %c %d", &t, &p, &h); getchar();
for (int j = 0; j < h; j++) {
if (p == 'B') a.push_back(++cnt);
if(p == 'R') b.push_back(++cnt);
}
}
cout << a.size() << endl;
for (it = a.begin(); it != a.end(); it++) {
cout << *it << " ";
}
cout << endl;
cout << b.size() << endl;
for (it = b.begin(); it != b.end(); it++) {
cout << *it << " ";
}
cout << endl;
return 0;
}