博客
关于我
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/

你可能感兴趣的文章
Nacos集群搭建
查看>>
nacos集群搭建
查看>>
Navicat for MySQL 查看BLOB字段内容
查看>>
Neo4j电影关系图Cypher
查看>>
Neo4j的安装与使用
查看>>
Neo4j(2):环境搭建
查看>>
Neo私链
查看>>
nessus快速安装使用指南(非常详细)零基础入门到精通,收藏这一篇就够了
查看>>
Nessus漏洞扫描教程之配置Nessus
查看>>
Nest.js 6.0.0 正式版发布,基于 TypeScript 的 Node.js 框架
查看>>
nestJS学习
查看>>
NetApp凭借领先的混合云数据与服务把握数字化转型机遇
查看>>
NetBeans IDE8.0需要JDK1.7及以上版本
查看>>
netbeans生成的maven工程没有web.xml文件 如何新建
查看>>
netcat的端口转发功能的实现
查看>>
netfilter应用场景
查看>>
netlink2.6.32内核实现源码
查看>>
Netpas:不一样的SD-WAN+ 保障网络通讯品质
查看>>
NetScaler的常用配置
查看>>
netsh advfirewall
查看>>