문제풀이/백준
[C++]백준 14226 - 이모티콘
레옹
2022. 1. 11. 02:15
https://www.acmicpc.net/status?user_id=dkak14&problem_id=14226&from_mine=1
채점 현황
www.acmicpc.net
코드
#include <iostream>
#include <memory.h>
#include <math.h>
using namespace std;
int S;
int IMT[1003][1003];
int answer = 98765432;
void CalIMT(int imtnum, int clipboard, int count) {
if (answer <= count || imtnum > S)
return;
if (IMT[imtnum][clipboard] <= count)
return;
if (imtnum < 0)
return;
if (S <= imtnum) {
imtnum = S;
IMT[imtnum][clipboard] = count;
answer = min(answer, count);
return;
}
IMT[imtnum][clipboard] = count;
CalIMT(imtnum, imtnum, count + 1);
CalIMT(imtnum + clipboard, clipboard, count + 1);
CalIMT(imtnum - 1, clipboard, count + 1);
}
int main() {
cin >> S;
memset(IMT, 5, sizeof(IMT));
CalIMT(1, 0, 0);
cout << answer;
return 0;
}