Description
现在给你两个长度为n正整数序列a与b。
让我们现在对序列a进行一次变换:
任意选择一个正整数k,保证 (0 <= k<= n) 选择k个不同的下标,为1<=i1<=i2<=...<=ik将选择的这k个下标的a数组变量(ai, ai, ai, ... ai)统一增加1,其余的a数组中的值不变。对a任意排序。
现在想知道是否可以只对数组a执行一次转换,以使结果数组等于b?
Input
输入共3行,其中第一行为一个正整数n,表示序列a与序列b的长度。
第二行为n个正整数,表示序列a。其中(-100 <= ai <= 100)。
第三行为n个正整数,表示序列b。其中(-100 <= bi <= 100)。
Output
输出共1行,如果满足要求,可以进行转换,则输出YES,否则输出NO。
Sample Input 1
3
-1 1 0
0 0 2
Sample Output 1
YES
题解
- 将输入的数字转成列表
- 进行排序
- 判断每个数是否相等或者加一是否相等
- 如不相等则输出no并结束,相等则继续
- 如果最后标志符没变,即可以一次转变成功,输出yes
n = int(input())
a = list(map(int,input().split()))
b = list(map(int,input().split()))
a.sort()
b.sort()
flag = 1
for i in range(0,n):
if a[i]!=b[i] and (a[i]+1)!=b[i]:
print("NO")
flag = 0
break
if flag == 1:
print("YES")