这次就a了三道
A
这道就很简单了,这个第一眼觉得是单链表,但是数据量不大,那就多开一个数组然后一个一个加吧。
n,k,x = map(int,input().split())
ans = list(map(int,input().split()))
arr = []
for i in range(n):
if len(arr) > k:
arr.append(ans[i])
else:
arr.append(ans[i])
if len(arr) == k:
arr.append(x)
print(' '.join(map(str, arr)))
B
B - Intesection of Cuboids (atcoder.jp)
这道题跟leetcode某一次比赛有点像,当时我看灵神题解说的是,既然我们公共区域的方案不好找,那我们就找什么时候他们没公共区域。
a,b,c,d,e,f = map(int,input().split())
g,h,i,j,k,l = map(int,input().split())
if max(b,e) <= min(h,k) or min(b,e) >= max(h,k):
print('No')
elif max(a,d) <= min(g,j) or min(a,d) >= max(g,j):
print('No')
elif max(c,f) <= min(i,l) or min(c,f) >= max(i,l):
print('No')
else:
print('Yes')
C
C - Make Them Narrow (atcoder.jp)
这道题就直接枚举看看怎么分两边才能最小就行了
import math
n,k = map(int,input().split())
arr = list(map(int,input().split()))
arr.sort()
nums1,nums2 = arr[:k + 1] ,arr[:-k - 1 - 1:-1]
ans = math.inf
for i in range(0,k + 1):
ans = min(ans,nums2[k - i] - nums1[i])
print(ans)