https://www.acmicpc.net/problem/20923
λ¬Έμ
μΈκ°μ΄ κ°μ₯ μ¬μ¬ν¨μ λλλ€λ μ€ν 1μ 22λΆ, λλμ μμ°μ΄λ μ«μ ν 리 κ°λ¦¬ κ²μμ νλ € νλ€. μ«μ ν 리 κ°λ¦¬ κ²μμ κ·μΉμ λ€μκ³Ό κ°λ€.
[μ«μ ν 리 κ°λ¦¬ κ²μμ κ·μΉ]
- μ΄κΈ°μ λλμ μμ°μ΄λ κ°κ° Nμ₯μ μΉ΄λλ‘ μ΄λ£¨μ΄μ§ λ±μ λ°°λΆλ°λλ€. κ²μ μμ μ κ·ΈλΌμ΄λλ λΉμ΄μλ μνμ΄λ€.
- λ±μ μ«μκ° λ³΄μ΄μ§ μκ² μΉ΄λλ₯Ό λ€μ§μ΄ μμ λμ μΉ΄λ λλ―Έλ₯Ό μλ―Ένλ€. λλμ μμ°μ΄λ μμ μ λ±μ κ°μ§κ³ κ²μμ μ§ννκ² λλ€.
- κ·ΈλΌμ΄λλ λλμ μμ°μ΄κ° κ²μμ μ§ννλ©° μμ μ΄ κ°μ§ λ±μμ κ°μ₯ μμ μλ μΉ΄λλ₯Ό λ΄λ €λκ² λλ λ μ μλ―Ένλ€. κ·ΈλΌμ΄λμ μΉ΄λλ₯Ό λ΄λ €λμ λλ μμ μ κ·ΈλΌμ΄λμ μΉ΄λλ₯Ό λ΄λ €λμΌλ©°, κ·ΈλΌμ΄λμ μΉ΄λ λλ―Έκ° μ‘΄μ¬ν κ²½μ° κΈ°μ‘΄μ λ§λ€μ΄μ§ μΉ΄λ λλ―Έ μλ‘ μΉ΄λλ₯Ό λ΄λ €λλ λ°©μμΌλ‘ μ§ννλ€.
- λλλ₯Ό μμμΌλ‘ λλμ μμ°μ΄κ° μ°¨λ‘λλ‘ κ·ΈλΌμ΄λμ μμ μ΄ κ°μ§ λ±μμ κ°μ₯ μμ μμΉν μΉ΄λλ₯Ό κ·ΈλΌμ΄λμ μ«μκ° λ³΄μ΄λλ‘ λ΄λ €λλλ€.
- μ’
μ λ¨Όμ μΉλ μ¬λμ΄ κ·ΈλΌμ΄λμ λμ μλ μΉ΄λ λλ―Έλ₯Ό λͺ¨λ κ°μ Έκ° μ μλ€. μ’
μ μΉ μ μλ 쑰건μ λ€μκ³Ό κ°λ€.
- κ·ΈλΌμ΄λμ λμ μλ κ°κ°μ μΉ΄λ λλ―Έμμ κ°μ₯ μμ μμΉν μΉ΄λμ μ«μ ν©μ΄ 5 κ° λλ μκ° μμ°μ΄κ° μ’ μ μΉλ€. λ¨, μ΄λ μͺ½μ κ·ΈλΌμ΄λλ λΉμ΄μμΌλ©΄ μλλ€.
- κ·ΈλΌμ΄λμ λμ μλ κ°κ°μ μΉ΄λ λλ―Έμμ κ°μ₯ μμ μμΉν μΉ΄λμ μ«μκ° 5 κ° λμ€λ μκ° λλκ° μ’ μ μΉλ€.
- μ’
μ μ³€λ€λ©΄, μλλ°©μ κ·ΈλΌμ΄λμ μλ μΉ΄λ λλ―Έλ₯Ό λ€μ§μ΄ μμ μ λ± μλλ‘ κ·Έλλ‘ ν©μΉ ν μμ μ κ·ΈλΌμ΄λμ μλ μΉ΄λ λλ―Έ μμ λ€μ§μ΄ μμ μ λ± μλλ‘ κ·Έλλ‘ κ°μ Έμ ν©μΉλ€.
- μ’ μ μ³μ κ·ΈλΌμ΄λμ μλ μΉ΄λ λλ―Έλ₯Ό κ°μ Έκ°λ νμλ κ²μμ μ§ν μμμ μν₯μ λ―ΈμΉμ§ μλλ€.
- βM M λ² μ§ν ν κ°μμ λ±μ μλ μΉ΄λμ κ°μκ° κ°λ€λ©΄ λΉκΈ΄ κ²μΌλ‘ λ³Έλ€. κ²μ μ§ν λμ€ μμ μ λ±μ μλ μΉ΄λμ μκ° 0 κ°κ° λλ μ¦μ μλλ°©μ΄ μΉλ¦¬ν κ²μΌλ‘ λ³Έλ€. (λ μ€ ν λͺ μ΄ 2~4λ²κΉμ§μ κ³Όμ μ μ§ννλ κ²μ 1 λ² μ§νν κ²μΌλ‘ λ³Έλ€.) λ² μ§νν ν μμ μ λ±μ λ λ§μ μΉ΄λλ₯Ό μ§λ μ¬λμ΄ μΉλ¦¬νκ³
κ²μμ M λ² μ§νν ν μΉλ¦¬ν μ¬λμ λꡬμΌκΉ?
μ λ ₯
첫째 μ€μλ λλμ μμ°μ΄κ° κ°μ§λ μΉ΄λμ κ°μ N (1≤N≤30000 )κ³Ό κ²μ μ§ν νμ M (1≤M≤2500000 )μ΄ μ£Όμ΄μ§λ€.
λμ§Έ μ€λΆν° N κ°μ μ€μλ λμ΄μ°κΈ°λ‘ ꡬλΆνμ¬ λλμ μμ°μ΄κ° κ°μ§ λ±μ 맨 μλμ μμΉν μΉ΄λμ μ ν μλ μλΆν° 맨 μμ μμΉν μΉ΄λμ μ ν μκΉμ§ μ°¨λ‘λλ‘ μ£Όμ΄μ§λ€. (κ°κ°μ μΉ΄λλ 1 μ΄μ 5 μ΄νμ μμ°μκ° μ νμλ€.)
μΆλ ₯
κ²μμ μ΄κΈ΄ μ¬λμ΄ λλλΌλ©΄ doλ₯Ό μΆλ ₯νκ³ κ²μμ μ΄κΈ΄ μ¬λμ΄ μμ°μ΄λΌλ©΄ suλ₯Ό μΆλ ₯νλ€. λΉκ²Όμ κ²½μ°, dosuλ₯Ό μΆλ ₯νλ€.
νμ΄
// Authored by : seondal
// Co-authored by : -
// #include <bits/stdc++.h>
#include <iostream>
#include <vector>
#include <deque>
using namespace std;
typedef deque<int> d;
d doCard, suCard;
d doGround, suGround;
// μ’
μΉμ¬λμ μΉ΄λλ±μ μλμ κ·ΈλΌμ΄λ λ±κ³Ό μμ μ κ·ΈλΌμ΄λ λ±μ ν©μΉλ ν©μ
void mergeCard(d &winnerCard, d &loserGround, d &winnerGround) {
for(int i=0; !loserGround.empty(); i++) {
winnerCard.push_front(loserGround.front());
loserGround.pop_front();
}
for(int i=0; !winnerGround.empty(); i++) {
winnerCard.push_front(winnerGround.front());
winnerGround.pop_front();
}
}
// κ·ΈλΌμ΄λμ μΉ΄λλ₯Ό λ΄λμλλ§λ€ μ’
μΉ μ¬λΆλ₯Ό κ²°μ νμ¬ μ’
μ μΉλ€.
void hitBell() {
// groundTop=0 : κ·ΈλΌμ΄λκ° λΉμ΄μμ
int doGroundTop=0, suGroundTop=0;
if(!doGround.empty())
doGroundTop = doGround.back();
if(!suGround.empty())
suGroundTop = suGround.back();
// μμ°μ΄κ° μ’
μΉ¨ (κ·ΈλΌμ΄λκ° λΉμ΄μμ§ μμμΌνκ³ , ν©μ΄ 5μ¬μΌν¨)
if(doGroundTop!=0 && suGroundTop!=0 && doGroundTop+suGroundTop==5)
mergeCard(suCard, doGround, suGround);
// λλκ° μ’
μΉ¨ (λμ€ νλκ° 5μ¬μΌν¨)
if(doGroundTop==5 || suGroundTop==5)
mergeCard(doCard, suGround, doGround);
// μ’
μμΉ¨
return;
}
string solution(int n, int m) {
// ν 리κ°λ¦¬ μν
bool doTurn = true;
while(m--){
if(doTurn) {
// μΈλ±μ€κ° μμμλ‘ μλμͺ½μ μμΉν μΉ΄λ => backμ΄ μΉ΄λμ κΌλκΈ°μͺ½ λ°©ν₯μ΄λ€
doGround.push_back(doCard.back());
doCard.pop_back();
if(suCard.empty() || doCard.empty()) break; // λ μ€ νλͺ
μ΄λΌλ κ°―μκ° 0μ΄λλ©΄ κ²μ μ’
λ£
hitBell();
} else {
suGround.push_back(suCard.back());
suCard.pop_back();
if(suCard.empty() || doCard.empty()) break;
hitBell();
}
doTurn = !doTurn;
}
// μΉμ κ²°μ
if(suCard.size() > doCard.size())
return "su";
else if (suCard.size() < doCard.size())
return "do";
else
return "dosu";
}
int main() {
int n,m;
cin >> n >> m;
doCard.assign (n,0);
suCard.assign (n,0);
for(int i=0; i<n; i++)
cin >> doCard[i] >> suCard[i];
cout << solution(n, m);
return 0;
}
/*
*/
'ποΈ ICPC Sinchon > Simulation' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[BOJ S4][C++] λ°±μ€ 1244λ²: μ€μμΉ μΌκ³ λκΈ° (0) | 2022.10.17 |
---|---|
[BOJ S3][C++] λ°±μ€ 2503λ²: μ«μ μΌκ΅¬ (2%, 4%) (0) | 2022.10.06 |
[BOJ G5][C++] λ°±μ€ 20055λ²: μ»¨λ² μ΄μ΄ λ²¨νΈ μμ λ‘λ΄ (0) | 2022.10.03 |
[BOJ][C++] λ°±μ€ 14891λ²: ν±λλ°ν΄ (0) | 2022.09.20 |
[BOJ S3][C++] λ°±μ€ 1213λ²: ν°λ¦°λ둬 λ§λ€κΈ° (0) | 2022.09.19 |