输入
2
5 4
3 3
输出
8
4 4 4 4 1 1 1 1
3
3 3 3
题意:
n*m个口罩,装最少的箱,使得在个数平均的情况下,既能分箱分给n个医院,也能分给m个医院。
上笨代码:
#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
vector<int> ans;
void gcd(int n,int m)
{
if(m==0) return;
for(int i=0;i<(n/m)*m;i++) ans.push_back(m);
gcd(m,n%m);
}
int main()
{
int t,n,m,i;
scanf("%d",&t);
while(t--)
{
ans.clear();//服务于下一组数据t--
scanf("%d%d",&n,&m);
if(n<m) swap(n,m);
gcd(n,m);
printf("%d\n",ans.size());
for(i=0;i<ans.size();i++)
printf("%d ",ans[i]);
puts("");
}
return 0;
}