90pts求助!!!
查看原帖
90pts求助!!!
836138
lzg_070506楼主2023/5/30 16:05

WA了第7个点,这是代码

#include<bits/stdc++.h>
using namespace std;
long long f[15],l=1;

int main(){
	for(int i=2;i<=12;i++){
		f[i]=f[i-1]*10+l;
		l*=10;
	}
	long long a,b,ansa[10],ansb[10];
	memset(ansa,0,sizeof(ansa));
	memset(ansb,0,sizeof(ansb));
	cin>>a>>b;
	a--;
	bool flag[2]={false,false};
	for(int i=12;i>0;i--){
		long long c=a/l,d=b/l;
		c%=10;d%=10;
		for(int j=0;j<=9;j++){
			ansa[j]+=f[i]*c;
			ansb[j]+=f[i]*d;
		}
		if(c>0 && !flag[0]) for(int j=l/10;j>=1;j/=10) ansa[0]-=j;
		if(d>0 && !flag[1]) for(int j=l/10;j>=1;j/=10) ansb[0]-=j;
		if(flag[0]){
			for(int j=0;j<c;j++) ansa[j]+=l;
		}
		else for(int j=1;j<c;j++) ansa[j]+=l;
		if(c || flag[0]) ansa[c]+=a%l+1;
		if(flag[1]){
			for(int j=0;j<d;j++) ansb[j]+=l;
		}
		else for(int j=1;j<d;j++) ansb[j]+=l;
		if(d || flag[1]) ansb[d]+=b%l+1;
		if(c) flag[0]=true;
		if(d) flag[1]=true;
		l/=10;
	}
//	if(a<10 && b>=10) ansa[0]=1;
	if(a == -1) ansa[0]--;
	for(int i=0;i<=9;i++){
		cout<<ansb[i]-ansa[i]<<" ";
	}
	return 0;
}
2023/5/30 16:05
加载中...