-
1547-C, *1100코드포스 2021. 8. 10. 16:14
Problem - 1547C - Codeforces
codeforces.com
문제
- Monocarp 와 Polycarp가 돌아가며 일을한다
- 두 명의 업무기록이 각각 주어질때 실현 가능한 업무기록이면 순서를, 불가능하면 -1 을 출력하라
$O(n+m)$
줄을 추가하는 일을 최우선으로 시뮬레이션해본다
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657#include <bits/stdc++.h>#define endl "\n"#define loop(i, n) for(int i = 1; i <= n; i++)using namespace std;int k, n, m;int main(){ios::sync_with_stdio(false);cin.tie(0), cout.tie(0);int t;cin >> t;while(t--){cin >> k >> n >> m;vector<int> a(n+1);loop(i, n) cin >> a[i];vector<int> b(m+1);loop(i, m) cin >> b[i];int pa = 1, pb = 1;bool flag = true;vector<int> res;loop(i, n+m){if(pa <= n && a[pa] == 0){res.push_back(a[pa]);pa++;k++;}else if(pb <= m && b[pb] == 0){res.push_back(b[pb]);pb++;k++;}else if(pa <= n && k >= a[pa]){res.push_back(a[pa]);pa++;}else if(pb <= m && k >= b[pb]){res.push_back(b[pb]);pb++;}else flag = false;}if(flag){for(auto e: res) cout << e << ' ';cout << endl;}else cout << -1 << endl;}return 0;}cs※ 각 조건문에서 할당되지 않은 index에 접근하지 않도록 주의!! (ex $ap \leq n$)
'코드포스' 카테고리의 다른 글
1554-D, *1800 (0) 2021.08.13 1513-B, *1400 (0) 2021.08.11 1526-B, *1400 (0) 2021.08.10 1557-A, *800 (0) 2021.08.10 1557-B, *1100 (0) 2021.08.10