博客
关于我
Kickdown UVA - 1588
阅读量:422 次
发布时间:2019-03-05

本文共 3026 字,大约阅读时间需要 10 分钟。

A research laboratory of a world-leading automobile company has received an order to create a special transmission mechanism, which allows for incredibly efficient kickdown — an operation of switching to lower gear. After several months of research engineers found that the most efficient solution requires special gears with teeth and cavities placed non-uniformly. They calculated the optimal flanks of the gears. Now they want to perform some experiments to prove their findings.

The first phase of the experiment is done with planar toothed sections, not round-shaped gears. A section of length n consists of n units. The unit is either a cavity of height h or a tooth of height 2h. Two sections are required for the experiment: one to emulate master gear (with teeth at the bottom) and one for the driven gear (with teeth at the top).

There is a long stripe of width 3h in the laboratory and its length is enough for cutting two engaged sections together. The sections are irregular but they may still be put together if shifted along each other.

The stripe is made of an expensive alloy, so the engineers want to use as little of it as possible. You need to find the minimal length of the stripe which is enough for cutting both sections simultaneously.

Input

The input file contains several test cases, each of them as described below.

There are two lines in the input, each contains a string to describe a section. The first line describes master section (teeth at the bottom) and the second line describes driven section (teeth at the top). Each character in a string represents one section unit — 1 for a cavity and 2 for a tooth. The sections can not be flipped or rotated.

Each string is non-empty and its length does not exceed 100.

Output

For each test case, write to the output a line containing a single integer number — the minimal length of the stripe required to cut off given sections.

Sample Input

211211211222121121212121221212121221122112221212

Sample Output

10815

HINT

相当于两个滑块,一个不懂一个动,求最小长度。下面的代码可以更简洁一点,就是把重复的地方封装成函数,可以省不少代码量。

Accepted

#include
#include
#include
int main(){ char a[101]; char b[101]; char c[201]; while (scanf("%s%s", a, b) != EOF) { int lena = strlen(a); int lenb = strlen(b); int min = lena+lenb; for (int i = 0;i <= lena; i++) { int flag = 0; memset(c, '\0', sizeof(c)); strcpy(c, a); for (int j = 0;j < lenb;j++) { if (c[j + lena - i] != '\0') { c[j + lena - i] += b[j] - '0'; if (c[j + lena - i] > '3') { flag = 1;break; } } else c[j + lena - i] = b[j]; } if (!flag)min = strlen(c) < min ? strlen(c) : min; } for (int i = 0;i <= lenb;i++) { int flag = 0; memset(c, '\0', sizeof(c)); strcpy(c, b); for (int j = 0;j < lena;j++) { if (c[j + lenb - i] != '\0') { c[j + lenb - i] += a[j] - '0'; if (c[j + lenb - i] > '3') { flag = 1;break; } } else c[j + lenb - i] = a[j]; } if (!flag)min = strlen(c) < min ? strlen(c) : min; } printf("%d\n",min); }}

转载地址:http://jrxzz.baihongyu.com/

你可能感兴趣的文章
nestJS学习
查看>>
NetApp凭借领先的混合云数据与服务把握数字化转型机遇
查看>>
NetBeans IDE8.0需要JDK1.7及以上版本
查看>>
netbeans生成的maven工程没有web.xml文件 如何新建
查看>>
netcat的端口转发功能的实现
查看>>
netfilter应用场景
查看>>
netlink2.6.32内核实现源码
查看>>
Netpas:不一样的SD-WAN+ 保障网络通讯品质
查看>>
NetScaler的常用配置
查看>>
netsh advfirewall
查看>>
NETSH WINSOCK RESET这条命令的含义和作用?
查看>>
Netstat端口占用情况
查看>>
Netty WebSocket客户端
查看>>
netty 主要组件+黏包半包+rpc框架+源码透析
查看>>
Netty 异步任务调度与异步线程池
查看>>
Netty中集成Protobuf实现Java对象数据传递
查看>>
netty之 定长数据流处理数据粘包问题
查看>>
Netty事件注册机制深入解析
查看>>
Netty入门使用
查看>>
Netty原理分析及实战(三)-高可用服务端搭建
查看>>