21天好习惯第一期—12

Codeforces 日常切题

1.A. Elections

题解:在三个数中找出最大的数,然后分别输出这三个数至少要加多少才能大于最大数的值。

AC代码如下:

#include <bits/stdc++.h>
typedef long long ll; 
using namespace std;
const ll mod=1e9+7;
inline int gcd(ll a,ll b){if(a%b==0) return b; return gcd(b,a%b);} 
int main()
{
	int t;
	cin>>t;
	while(t--)
	{
		ll a,b,c;
		cin>>a>>b>>c;
		ll maxn=max(a,max(b,c));
		ll a1=maxn-a;
		ll b1=maxn-b;
		ll c1=maxn-c;
	    if((a==maxn)+(b==maxn)+(c==maxn)>=2)
		{
			a1++,b1++,c1++;
		}
		else
		{
			if(a!=maxn) a1++;
			if(b!=maxn) b1++;
			if(c!=maxn) c1++;
		}
		printf("%lld %lld %lld\n",a1,b1,c1);
	}
	return 0;
 } 

2.B. Make it Divisible by 25 

题解:查找n至少要修改多少个数值才能被25整除

AC代码如下:

#include <bits/stdc++.h>
typedef long long ll; 
using namespace std;
const ll mod=1e9+7;
inline int gcd(ll a,ll b){if(a%b==0) return b; return gcd(b,a%b);} 
int main()
{
	int t;
	cin>>t;
	while(t--)
	{
		ll n;
		cin>>n;
		vector<int>k;
		while(n)
		{
			k.push_back(n%10);
			n=n/10;
		}
		int i,j,flag=0,sum1=0,sum2=0;
		for(i=0;i<k.size()-1;i++)
		{   
		    if(flag==0)
		    {
		    if(k[i]==5)
			flag=1;
			else
			sum1++;
			}
			else
			{
			if(k[i]==2||k[i]==7)
			break;
			sum1++;
			}
		}
		flag=0;
		for(i=0;i<k.size()-1;i++)
		{   
		    if(flag==0)
		    {
		    if(k[i]==0)
			flag=1;
			else
			sum2++;
			}
			else
			{
			if(k[i]==0||k[i]==5)
			break;
			sum2++;
			}
		}
		cout<<min(sum1,sum2)<<endl;
    }
	return 0;
 } 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值