题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6092
题解看这里:http://blog.csdn.net/qq_36306833/article/details/76926969
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int maxn = 1e5 + 10;
int b[maxn];
int a[maxn];
int n, m;
int main()
{
int t;
scanf("%d", &t);
while (t > 0){
t--;
scanf("%d%d", &n, &m);
for (int i=0; i<=m; i++){
scanf("%d", &b[i]);
}
int k = 0;
for (int i=0; i<=m; i++){
if (k == n){
break;
}
if (i == 0){
continue;
}
if (b[i] != 0){
a[k++] = i;
for (int j=i; j<=m; j++){
b[j] -= b[j-i];
}
i--;
}
}
for (int i=0; i<n-1; i++){
cout << a[i] << ' ';
}
cout << a[n-1] << endl;
}
return 0;
}