div2 T3 sub3 求hack
  • 板块学术版
  • 楼主hepp
  • 当前回复8
  • 已保存回复8
  • 发布时间2024/3/17 18:07
  • 上次更新2024/3/17 20:04:32
查看原帖
div2 T3 sub3 求hack
541313
hepp楼主2024/3/17 18:07

rt

人麻了没想到栽这了

for(int i=1;i<=len;i++)
{
	if(a[i]>=a[i-1])
		ans[i]=a[i]-a[i-1];
	else
	{
		flg=0;
		printf("-1");
		break;
	}
}
if(flg)
{
	for(int i=1;i<=len;i++)
	printf("%d",ans[i]);
}
printf("\n");			

另外附一份完整代码

#include<bits/stdc++.h>
using namespace std;
const int N=1e7+10;
int a[N],len,ans[N];
char c[N];
bool ber(int x,int y)
{
	for(int i=1;i<=len;i++)
	{
		if(i<y)
		{
			if(a[i])
				return 1;
			continue;
		}
		if(a[i]<x)
			return 0;
		if(a[i]>x)
			return 1;
	}
	return 1;
}
void jian(int x,int y)
{
	for(int i=len;i>=y;i--)
	{
		a[i]-=x;
		if(a[i]<0)
			a[i-1]--,a[i]+=10;
	}
	return;
}
int main()
{
	int T,flg;
	scanf("%d",&T);
	while(T--)
	{
		scanf("%s",c+1);
		len=strlen(c+1);
		flg=1;
		for(int i=1;i<=len;i++)
			a[i]=c[i]-'0';
		if(len==1&&a[1]==0)
		{	
			printf("0\n");
			continue;
		}
		if(len<=3000)
		{
			for(int i=1;i<=len;i++)
			{
				for(int j=9;j>=0;j--)
				{
					if(ber(j,i))
					{
						ans[i]=j;
						jian(j,i);
						break;
					}
				}
			}
			for(int i=1;i<=len;i++)
				if(a[i])
				{
					flg=0;
					printf("-1");
					break;
				}
			if(flg)
			{
				int k=0;
				for(int i=1;i<=len;i++)
				{
					if(ans[i])
						k=1;
					if(k)
						printf("%d",ans[i]);
				}
			}
			printf("\n");
		}
		else
		{
			for(int i=1;i<=len;i++)
			{
				if(a[i]>=a[i-1])
					ans[i]=a[i]-a[i-1];
				else
				{
					flg=0;
					printf("-1");
					break;
				}
			}
			if(flg)
			{
				for(int i=1;i<=len;i++)
					printf("%d",ans[i]);
			}
			printf("\n");
		}
	}
    return 0;
}
2024/3/17 18:07
加载中...