您的位置:首页 > 其它

Codeforces Round #339 (Div. 2) B. Gena's Code

2016-01-23 16:15 190 查看
题目链接~~

题意是求队列的乘积,而n个数的队列中的数字至少有n-1个最多只有1个1的没有前导零的数,所以这个乘积结果只需记录结尾总共有多少零,以及不是只有1个1的数即可。由于位数可以达到10^10所以不能用大数。

#include <cstdio>
#include <cstring>
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
string s;
string num,ans;
int main()
{
int n;
ans="1";
long long mx=0;
int j;
cin>>n;
for(int i=0;i<n;i++){
s.clear();
cin>>s;
//cout<<s<<endl;
num.clear();
if(s=="0"){
ans="0";
}
if(ans=="0") continue;
j=s.size()-1;
while(j>=0&&s[j]=='0'){
mx++;
j--;
}
for(int k=0;k<=j;k++)
num+=s[k];
// cout<<num<<endl;
if(num>"1"){
ans=num;
}
}
cout<<ans;
if(ans!="0"){
// cout<<mx<<endl;
while(mx>0){
cout<<"0";
mx--;
}

}
cout<<endl;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: