C - Lucky Conversion

CodeForces - 146C

Petya loves lucky numbers very much. Everybody knows that lucky numbers are positive integers whose decimal record contains only the lucky digits 4 and 7. For example, numbers 47, 744, 4 are lucky and 5, 17, 467 are not.

Petya has two strings a and b of the same length n. The strings consist only of lucky digits. Petya can perform operations of two types:

  • replace any one digit from string a by its opposite (i.e., replace 4 by 7 and 7 by 4);
  • swap any pair of digits in string a.

Petya is interested in the minimum number of operations that are needed to make string a equal to string b. Help him with the task.

Input

The first and the second line contains strings a and b, correspondingly. Strings a and b have equal lengths and contain only lucky digits. The strings are not empty, their length does not exceed 105.

Output

Print on the single line the single number — the minimum number of operations needed to convert string a into string b.

Examples

Input
47
74
Output
1
Input
774
744
Output
1
Input
777
444
Output
3

Note

In the first sample it is enough simply to swap the first and the second digit.

In the second sample we should replace the second digit with its opposite.

In the third number we should replace all three digits with their opposites.

题意:给出两个字符串a,b,对字符串a进行两种操作:1.将4替换为7或将7替换为4 (2. 交换字符串中的任意两个数,求出最少操作数使得字符串a与字符串b相等

题解:记录下a与b中对应位置不同的数的个数,即与b串中对应位置不同且a串为4的个数(用ct4表示)或a串中7的个数(ct7表示),如果不考虑交换操作,那么操作次数为ct4+ct7;

如果ct4与ct7均不为0,那么就可以进行交换操作,所以可以交换的次数应为min(ct4,ct7),那么最终的操作次数为ct4+ct7-min(ct4+ct7)

#include<bits/stdc++.h>
using namespace std;
int main()
{
string a,b;
int ct4=0,ct7=0;
cin>>a>>b;
int n;
n=a.size();
for(int i=0;i<n;i++)
{
if(a[i]==b[i])continue;
if(a[i]=='4')ct4++;
else ct7++;
}
cout<<(ct4+ct7-min(ct4,ct7))<<endl;
}

B - Lucky Mask

Petya loves lucky numbers very much. Everybody knows that lucky numbers are positive integers whose decimal record contains only the lucky digits 4 and 7. For example, numbers 47, 744, 4 are lucky and 5, 17, 467 are not.

Petya calls a mask of a positive integer n the number that is obtained after successive writing of all lucky digits of number n from the left to the right. For example, the mask of number 72174994 is number 7744, the mask of 7 is 7, the mask of 9999047 is 47. Obviously, mask of any number is always a lucky number.

Petya has two numbers — an arbitrary integer a and a lucky number b. Help him find the minimum number c (c > a) such that the mask of number c equals b.

Input

The only line contains two integers a and b (1 ≤ a, b ≤ 105). It is guaranteed that number b is lucky.

Output

In the only line print a single number — the number c that is sought by Petya.

Examples

Input
1 7
Output
7
Input
100 47
Output
147
题解:输入两个整数a,b,用数组x[]将a的各位数存储起来,因为要求的c比a大,所以从i=a+1开始遍历,将i的各位数存入数组y[]
中,遍历该数组,看是否存在数与a相同且无多余的幸运数
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a,b,x[100],y[100];
while(cin>>a>>b)
{
int n,m,k=0,p=0;
m=b;
while(m>0)
{
x[k++]=m%10;
m/=10;
}
for(int i=a+1; ;i++)
{
n=i;
p=0;
while(n!=0)
{
y[p++]=n%10;
n/=10;
}
int w,j,s=0;
for(w=0,j=0;w<p;w++)
{
if(y[w]==4||y[w]==7)
{
if(y[w]==x[j])
{
j++;
}
else//当数值为147777 47 ,i=147778,不符合要跳出,重新遍历
{
s=1;
break;
}
}
}
if(s==1)
{
continue;
}
if(j==k)
{
cout<<i<<endl;
break;
}
}
} }

2020.12.14--Codeforces Round #104 (Div.2)补题的更多相关文章

  1. Codeforces Round #412 Div. 2 补题 D. Dynamic Problem Scoring

    D. Dynamic Problem Scoring time limit per test 2 seconds memory limit per test 256 megabytes input s ...

  2. Codeforces Round #786 (Div. 3) 补题记录

    小结: A,B,F 切,C 没写 1ll 对照样例才发现,E,G 对照样例过,D 对照样例+看了其他人代码(主要急于看后面的题,能调出来的但偷懒了. CF1674A Number Transforma ...

  3. Codeforces Round #429 (Div. 2) 补题

    A. Generous Kefa 题意:n个气球分给k个人,问每个人能否拿到的气球都不一样 解法:显然当某种气球的个数大于K的话,就GG了. #include <bits/stdc++.h> ...

  4. Codeforces Round #419 (Div. 1) 补题 CF 815 A-E

    A-C传送门 D Karen and Cards 技巧性很强的一道二分优化题 题意很简单 给定n个三元组,和三个维度的上限,问存在多少三元组,使得对于给定的n个三元组中的每一个,必有两个维度严格小于. ...

  5. Codeforces Round #590 (Div. 3)补题

    要想上2000分,先刷几百道2000+的题再说 ---某神 题目 E F 赛时是否尝试 × × tag math bitmask 难度 2000 2400 状态 ∅ √ 解 E 待定 F 传送门 第一 ...

  6. Codeforces Round #574 (Div. 2)补题

    A. Drinks Choosing 统计每种酒有多少人偏爱他们. ki 为每种酒的偏爱人数. 输出ans = (n + 1)/2 >  Σki / 2 ? (n + 1)/2 - Σki / ...

  7. Codeforces Round #585 (Div. 2) [补题]

    前言 2019.9.16 昨天下午就看了看D题,没有写对,因为要补作业,快点下机了,这周争取把题补完. 2019.9.17 这篇文章或者其他文章难免有错别字不被察觉,请读者还是要根据意思来读,不要纠结 ...

  8. Codeforces Round #615 (Div. 3) 补题记录

    第一次搞CF,结果惨不忍睹...还是太菜了 A:要用到全部的钱,所以总数必须是3的倍数,而且初始状态下任意一人的钱数不能超过总数除以3,否则没法分了 (也就这个签到算是在我能力范围之内了....) # ...

  9. Codeforces Round #617 (Div. 3) 补题记录

    1296A - Array with Odd Sum 题意:可以改变数组中的一个数的值成另外一个数组中的数,问能不能使数组的和是个奇数 思路:签到,如果本来数组的和就是个奇数,那就OK 如果不是,就需 ...

随机推荐

  1. 【MIT6.S081/6.828】手把手教你搭建开发环境

    目录 1. 简介 2. 安装ubuntu20.04 3. 更换源 3.1 更换/etc/apt/sources.list文件里的源 3.2 备份源列表 3.3 打开sources.list文件修改 3 ...

  2. vue 上传头像悬浮显示文字

    template部分: 头像外部加一个 div <div class="user-info-head"> </div>   css 部分 <style ...

  3. 剑指 Offer 34. 二叉树中和为某一值的路径

    剑指 Offer 34. 二叉树中和为某一值的路径 输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径.从树的根节点开始往下一直到叶节点所经过的节点形成一条路径. 示例: 给定如下 ...

  4. Linux常用命令 - less命令详解

    21篇测试必备的Linux常用命令,每天敲一篇,每次敲三遍,每月一循环,全都可记住!! https://www.cnblogs.com/poloyy/category/1672457.html 查看文 ...

  5. 自定义-starter

    目录 说明 编写启动器 新建项目测试我们自己写的启动器 分析完毕了源码以及自动装配的过程,可以尝试自定义一个启动器来玩玩! 自动装配的过程 SpringBoot-静态资源加载-源码 SpringBoo ...

  6. 解决git bash闪退问题 报openssl错误

    问题描述:今天安装git之后发现Git Bash工具闪退. 于是试了各种办法之后,最后终于解决. 背景描述:git 下载地址:https://git-scm.com/download/win 下载成功 ...

  7. 238 day02_Collection、泛型

    day02[Collection.泛型] 主要内容 Collection集合 迭代器 增强for 泛型 教学目标 [ ] 能够说出集合与数组的区别 [ ] 说出Collection集合的常用功能 [ ...

  8. hadoop集群搭建详细教程

    本文针对hadoop集群的搭建过程给予一个详细的介绍. 参考视频教程:https://www.bilibili.com/video/BV1tz4y127hX?p=1&share_medium= ...

  9. Java Web下MySQL数据库的增删改查(二)

    前文:https://www.cnblogs.com/Arisf/p/14095002.html 在之前图书管理系统上做了改进优化 图书管理系统v2 首先是项目结构: 1.数据库的连接: 1 pack ...

  10. 解决sofaboot项目右键入口方法没有run sofa application

    选中入口方法名,右键出现run sofa application