压位,结果万紫千红总是春
查看原帖
压位,结果万紫千红总是春
536337
eb0ycn楼主2024/1/5 17:28

WA+RE,0分,样例过。

#include <bits/stdc++.h>
using namespace std;
#define ll long long
const ll mod=10000000000000000,N=625001;
int ck;
ll c[N],po1,po2,n;
void write()
{
	printf("%lld",c[ck]/9),c[ck]+=c[ck]%9;
	for(int i=ck-1;~i;--i)
	{
		printf("%016lld",c[i]/9);
		if(i&&c[i]>mod)c[i-1]+=c[i]%9;
	}
}
int main()
{
	scanf("%lld",&n);
	c[0]=n<<2;
	ck=n>>3;
	po1=400,po2=80;
	for(ll i=1;i<=n;++i)
	{
		c[i>>4]-=po2;
		po2*=10;
		if(!(i&15))po2/=mod;
	}
	n<<=1;
	for(ll i=1;i<n;++i)
	{
		if(i&1)c[i>>4]+=po1,po1*=100;
		if(!(i&15))po1/=mod;
	}
	if(!c[ck])--ck;
	write();
	return 0;
}
2024/1/5 17:28
加载中...