rt,按贪心的顺序搜,找到答案直接退出,为什么不会T。。。
#include <iostream>
using namespace std;
int ans = 114514;
void dfs(int want, int used, int al)
{
if (al > want) return;
if (used >= ans) return ;
if (al == want) {cout << used << endl;exit(0);}
dfs(want, used + 1, al + 5);
dfs(want, used + 1, al + 3);
}
int main()
{
int n;
cin >> n;
dfs(n, 0, 0);
if (ans == 114514) ans = -1;
cout << ans << endl;
return 0;
}