https://www.acmicpc.net/problem/1463
왜자꾸 틀리다고 나오는건야?
좆같네 진짜
#include <iostream>
#include <algorithm>
#include <string.h>
int memo[1000001];
int input;
int Recursion(int val, int count)
{
if (val <= 0) return ++count;
if (val == 1) return 0;
if (memo[val] != -1) return memo[val];
int ans = memo[val] = input;
if (val % 3 == 0)
memo[val] = std::min(memo[val], Recursion(val / 3, count + 1)) + 1;
if (val % 2 == 0)
memo[val] = std::min(memo[val], Recursion(val / 2, count + 1)) + 1;
ans = Recursion(val - 1, count + 1) + 1;
if (memo[val] > ans)
memo[val] = ans;
return memo[val];
}
int main()
{
std::ios_base::sync_with_stdio(false);
std::cin >> input;
memset(memo, -1, sizeof(memo));
memo[2] = memo[3] = 1;
printf("%d\n", Recursion(input, 1));
return 0;
}
printf("%dn", Recursion(input, 1)); 여기서 뉴라인은 처리되어 있다 참고로
병신
풉 ㅋㅋ
ㄴ어디 틀렸는지 말해봐라
바텀업으로 풀어 시발 ㅡㅡ
질문에 나온 반례들은 다 집어넣고 있는데 시발 다 맞는데 뭐가 빠진거지
탑다운 코드 보니까 못알아 먹겠네 ㄹㅇ
풀었다 29208 메모리 존나 쳐먹었다