#P16539. [Dapc2021]git mv

[Dapc2021]git mv

题目背景

在开发过程中,你刚刚把一个文件从一个路径移动到了另一个路径。为了让团队成员理解这次变动,你希望用一个尽可能短的字符串描述这次路径替换,而不依赖版本管理软件。

源路径和目标路径都是合法的 Unix 路径:它们由小写字母和 / 组成,非空,不以 / 开头或结尾,也不包含连续的两个 /

题目描述

给定源路径和目标路径。你需要输出一个最短的字符串,格式为:

A{B => C}D

它表示源路径为 ABD,目标路径为 ACD。在拼接时,如果出现连续的两个 /,应当把它们视为一个 /

例如,如果文件从:

a/c

移动到:

a/b/c

可以表示为:

a/{ => b}/c

这里表示源路径是 a/c,而不是 a//c

输出需要满足:

  • AA 为空,或者以 / 结尾;
  • DD 为空,或者以 / 开头;
  • BBCC 若非空,则不能以 / 开头或结尾。

你需要在满足上述条件的所有描述中,输出长度最短的一个。

输入格式

输入包含两行。

第一行为源路径。

第二行为目标路径。

输出格式

输出一个最短的替换描述字符串。

样例 1

输入

www/public/passwords
private/passwords

输出

{www/public => private}/passwords

样例 2

输入

home/linus/downloads/image
home/linus/pictures/recent/image

输出

home/linus/{downloads => pictures/recent}/image

数据范围与说明

两个路径长度均不超过 10610^6

两个路径均不以 / 开头或结尾,不包含连续的 /

每个路径中,不会出现重复的目录名。

源路径与目标路径保证不同。