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

你可能感兴趣的文章
Nginx实战经验分享:从小白到专家的成长历程!
查看>>
Nginx实现反向代理负载均衡
查看>>
nginx实现负载均衡
查看>>
nginx常用命令及简单配置
查看>>
nginx开机启动脚本
查看>>
nginx异常:the “ssl“ parameter requires ngx_http_ssl_module in /usr/local/nginx/conf
查看>>
nginx总结及使用Docker创建nginx教程
查看>>
nginx报错:the “ssl“ parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:128
查看>>
nginx报错:the “ssl“ parameter requires ngx_http_ssl_module in usrlocalnginxconfnginx.conf128
查看>>
nginx日志分割并定期删除
查看>>
Nginx日志分析系统---ElasticStack(ELK)工作笔记001
查看>>
Nginx映射本地json文件,配置解决浏览器跨域问题,提供前端get请求模拟数据
查看>>
nginx最最最详细教程来了
查看>>
Nginx服务器---正向代理
查看>>
Nginx服务器上安装SSL证书
查看>>
Nginx服务器基本配置
查看>>
Nginx服务器的安装
查看>>
Nginx模块 ngx_http_limit_conn_module 限制连接数
查看>>
Nginx模块 ngx_http_limit_req_module 限制请求速率
查看>>
nginx添加模块与https支持
查看>>