签到题。题目要求是按照字典序。
所以 $x$ 肯定从小到大,$y$ 也是从小到大。
由于本题的 $n$ 很小,所以暴力是可以解决的。
题目描述
算法1
(暴力枚举)
时间复杂度
$O(n^2)$
参考文献
C++ 代码
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main() {
//freopen("1.in", "r", stdin);
//freopen("1.out", "w", stdout);
int T;
scanf("%d", &T);
while (T--) {
int n;
scanf("%d", &n);
bool flag=false;
for (int x=0; x<=n/3 && false==flag; x++) {
for (int y=0; y<=n/5 && false==flag; y++) {
int z=(n-3*x-5*y)/7;
if (3*x+5*y+7*z==n) {
printf("%d %d %d\n", x, y, z);
flag=true;
}
}
}
if (false==flag) {
printf("-1\n");
}
}
return 0;
}