捞
  • 板块灌水区
  • 楼主King_duck
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/11/15 21:36
  • 上次更新2023/11/16 05:50:26
查看原帖
捞
823594
King_duck楼主2023/11/15 21:36

题目P1581

代码:

#include<bits/stdc++.h>
using namespace std;
const int N=1e6+10;
string s;
long long a[N],b[N],c[N],m[10]={0,2,3,5,7,11};
int main() 
{
	cin>>s;
    int len=s.size(),flg=0,l_a=1,l_b=1;
    for(long long i=len;i>=0;i--)
    {
    	if(s[i]=='+')
    	{
    		flg=1;
    		continue;
		}
		if(isdigit(s[i])==1)
		{
			if(isdigit(s[i-1])==1)
			{
				if(flg==0)
				{
					a[l_a]=(s[i]-'0')*10+(s[i-1]-'0');
					l_a++;
				}
				else
				{
					b[l_b]=(s[i]-'0')*10+(s[i-1]-'0');
					l_b++;
				}
				i--;
				continue;
			}
			if(flg==0)
			{
				a[l_a]=s[i]-'0';
				l_a++;
			}
			else
			{
				b[l_b]=s[i]-'0';
				l_b++;
			}
		}
	}
	l_a--,l_b--;
	int len2=max(l_a,l_b),k=1;
	for(long long i=1;i<=len2;i++)
	{
		c[i]+=a[i]+b[i];
		if(c[i]>=m[k])
		{
			c[i+1]+=c[i]/m[k];
			c[i]%=m[k];
		}
		k++;
	}
	len=0;
	while(1)
	{
		if(c[len2+1]!=0)
		{
			len2++;
		}
		else
		{
			break;
		}
	}
	for(long long i=len2;i>=1;i--)
	{
		cout<<c[i];
		if(i!=1)
		{
			cout<<',';
		}
	}
    return 0;
}

得了 8080 分,最后一个点就是A不过去,求助!

2023/11/15 21:36
加载中...