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);
}
}