没啥好说的,好好理解题意,坑点有点多
我的代码好丑陋,注意学习一下大神的
//好坑一道题,我的垃圾代码
#include<bits/stdc++.h>
using namespace std;
const int N=1e5;
int a[N],ans[N];
int n=1;
int k=1;
int main()
{
while(cin>>a[n])//不定长数组输入
{
n++;
}
if(a[1]==0||a[2]==0)//坑点
{
cout<<"0 0";
}
else
{
n--;
int t=0;
for(int j=1;j<=n;j+=2)
{
int x=a[j],y=a[j+1];
if(y>1)
{
ans[k]=x*y;
ans[k+1]=y-1;
k+=2;
}
else if(y==1&&x!=0)
{
t=1;
ans[k]=x*y;
ans[k+1]=y-1;
k++;
}
else if(y==1&&x==0)//坑点
{
t=1;
ans[k]=0;
}
}
if(t==0) k--;//坑点
int flag=0;
for(int j=1;j<=k;j++)
{
if(flag==1) cout<<" ";
cout<<ans[j];
flag=1;
}
}
return 0;
}
//别人的神仙代码
/*#include <iostream>
using namespace std;
int main() {
int a, b, flag = 0;
while (cin >> a >> b) {
if (b != 0) {
if (flag == 1) cout << " ";
cout << a * b << " " << b - 1;
flag = 1;
}
}
if (flag == 0) cout << "0 0";
return 0;
}*/