圣杯地牢
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 128 M,其他语言256 M
64bit IO Format: %lld

题目描述


被安置在圣杯教会里的仪式圣杯。
安放在猎人梦境中的坟墓祭坛上进行仪式的话,可以解开地下遗迹的封印。
借由圣杯揭开神明之墓,让神血成为猎人的食物。
跪拜圣体吧……

作为一个穿越时空的不死人,你先后到访了热情好客的病村、水生村、白金村、颠火村等等美妙的地方,和当地友善的居民进行了友好的交流。你的下一个目标是化身猎人,神游亚楠镇。
亚楠镇有一个广为人知的游览胜地——圣杯地牢。到访这里的你自然要体验一波圣杯地牢的折磨。在经历了无数变化的圣杯地牢后,你总结出了一套经验。
  • 一个圣杯地牢的特征可以认为是一个整数序列 a,其长度为 n,序列元素编号为。为了简便,之后直接使用地牢的特征序列代表一个地牢。
  • 对于一个圣杯地牢 a 的每一次变化,你可以认为是执行了这样的操作:选择一个序列的一个位置 k,令
  • 给定 2 个圣杯地牢 a,b,如果进行多次变化(次数不限,可以为0),可以使得圣杯地牢 a 变成 b,那么就说明这两个地牢同源。
现在,给你两个圣杯地牢 ab,请你判断它们是否同源。

输入描述:

第一行包含一个整数 n,代表两个圣杯地牢特征序列的长度。
第二行包括 n 个整数,代表第一个地牢的特征序列 a
第三行包括 n 个整数,代表第二个地牢的特征序列 b

输出描述:

仅一行,如果地牢 a 可以变成 b,那么输出"YES",否则输出"NO",输出不包含引号。
示例1

输入

复制
5    
1 2 3 4 5
8 6 9 12 10

输出

复制
YES

说明

可以令 k=2,使得序列变为 [6,3,5,7,9],再令 k=5,使得序列变为 [8,6,9,12,10]
示例2

输入

复制
5    
1 2 3 4 5
9 8 12 16 14

输出

复制
NO

说明

无法构造出合法的操作使 a 变成 b

备注: