题意:
给你一个数nnn,能否用若干个3、5、7的和组成。
解题思路:
考虑3、5、7取模3的余数。
如果n%3=0n\%3=0n%3=0,那么只要用n/3n/3n/3个333来组成。
如果n%3=1n\%3=1n%3=1,那么一定要用一个777,然后少用两个333就好了,特判n<7n<7n<7。
如果n%3=2n\%3=2n%3=2,那么一定要用一个555,然后少用一个333就好了,特判n<5n<5n<5。
代码:
#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e5+5;
const int mod = 1e9+7;
int main(){
int t;
cin>>t;
while(t--)
{
int x;
cin>>x;
int a=x/3;
int b=x%3;
if(b==0)
cout<<a<<" 0 0"<<endl;
else
{
if(b==1)
{
if(x<7)
cout<<-1<<endl;
else
cout<<a-2<<" 0 1"<<endl;
}
else
{
if(x<5)
cout<<-1<<endl;
else
cout<<a-1<<" 1 0"<<endl;
}
}
}
return 0;
}