Codeforces Round #667 (Div. 3) ABCD题解

A.Yet Another Two Integers Problem

#include<iostream>
#include<cmath>
using namespace std;
int main(){
	int t,a,b;
	scanf("%d",&t);
	while(t--){
		scanf("%d%d",&a,&b);
		int ans=(abs(a-b)+9)/10;
		printf("%d\n",ans);
	}
} 

B.Minimum Product

#include<iostream>
using namespace std;
int main(){
	int t;
	long long a,b,x,y,n;
	scanf("%d",&t);
	while(t--){
		scanf("%lld%lld%lld%lld%lld",&a,&b,&x,&y,&n);
		long long max1=max(a-n,x)*max(b-(n-a+max(a-n,x)),y);
        long long max2=max(b-n,y)*max(a-(n-b+max(b-n,y)),x);
		long long ans=min(max1,max2);
		printf("%lld\n",ans);
	}
}

C.Yet Another Array Restoration

#include<iostream>
typedef long long ll;
using namespace std;
int main(){
	int t;
	ll n,x,y;
	scanf("%d",&t);
	while(t--){
		scanf("%lld%lld%lld",&n,&x,&y);
		if(n==2){
			printf("%lld %lld\n",x,y);
			continue;
		}
		int mod=n-1,tmp=y-x;
		while(tmp%mod!=0)	mod--;
		mod=tmp/mod;
		if(x%mod==0)	x=mod;
		else	x%=mod;
		if(y<mod*(n-1)+x)	y=mod*(n-1)+x;
		for(int i=0;i<n;i++){
			printf("%lld ",y);
			y-=mod;
		}
		printf("\n");
	}
}

D.Decrease the Sum of Digits

#include<iostream>
typedef unsigned long long ull;
using namespace std;
int dg[164];
ull p[20];
void init(){
	p[0]=1;
	for(int i=1;i<=18;i++)	p[i]=p[i-1]*10;
}
int main(){
	ull t,n,s;
	scanf("%lld",&t);
	init();
	while(t--){
		int cnt=0,sum=0;
		ull ans=0;
		scanf("%lld%lld",&n,&s);
		ull tmp=n;
		while(tmp!=0){
			dg[++cnt]=tmp%10;
			tmp/=10;
			sum+=dg[cnt];
		} 
		if(sum<=s){
			printf("0\n");
			continue;
		}
		else{
			while(sum>s){
				if(s<dg[cnt]){
					while(s<1){
						cnt++;
						ans-=dg[cnt];
						ans/=10;
						s+=dg[cnt];
					}
					ans+=1;
					break;
				}
				else{
					ans=ans*10+dg[cnt];
					sum-=dg[cnt];
					s-=dg[cnt];
				}
				cnt--;	
			}
			ans=ans*p[cnt];
		}
		printf("%lld\n",ans-n);
	} 
} 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值