社区讨论

关于刚才比赛的T1

灌水区参与者 5已保存回复 7

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
7 条
当前快照
1 份
快照标识符
@lo8n4w1w
此快照首次捕获于
2023/10/27 21:20
2 年前
此快照最后确认于
2023/10/27 21:20
2 年前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
long long t,m,ws1,tp=1,cnt;
string n;
long long js(long long ws,string x)
{
	long long ans=1;
	for(long long i=1;i<ws1;i++)
		ans*=10;
	if(x[ws1-1]=='0'&&cnt==ws1-1)
		return ans+(x[0]-48)-1;
	return ans+(x[0]-48);
}
string ws(string x)
{
	string sum;
	long long jw=0;
	for(long long i=0;i<ws1;i++)
	{
		if(n[i]=='9')
		{
			if(jw==0)
				sum='8'+sum;
			else
				sum='9'+sum;
			jw=1;
		}
		else
		{
			if(jw==1)
			{
				sum=char((n[i]-48)+jw+48)+sum;
				jw=0;
			}
			else
				sum='0'+sum;
		}
	}
	if(sum[0]=='0')
	{
		sum[0]=char(sum[0]+1);
		return sum;
	}
	return sum;
}
int main()
{
	cin>>t;
	while(t--)
	{
		cin>>n;
		ws1=n.size();
		cnt=0;
		for(long long i=1;i<ws1;i++)
			if(n[i]=='0')
				cnt++;
		if(n[0]=='9')
		{
			bool bj=1,tp=1;
			for(long long i=1;i<ws1;i++)
			{
				if(n[i]!='0')
					bj=0;
				if(n[i]!='9')
					tp=0;
			}
			for(long long i=ws1-1;i>0;i--)
			{
				if(n[i]=='9')
					n[i]='0';
				else
					break;
			}
			if(bj==1)
			{
				cout<<js(ws1,n)<<endl;
				continue;
			}
			if(tp==1)
			{
				long long sum=1;
				for(long long i=1;i<=ws1;i++)
					sum*=10;
				cout<<sum<<endl;
			}
			else
				cout<<ws(n)<<endl;
		}
		else if(ws1==1)
			cout<<n<<endl;
		else
			cout<<js(ws1,n)<<endl;	
	}
	return 0;
}
自己的样例测了好几次都没问题,结果全WA了

回复

7 条回复,欢迎继续交流。

正在加载回复...