Wonderful Permutation (Codeforces 1712A)
Tags: Greedy, implementation

God's Blessing on This PermutationForces!A Random PebbleYou are given a permutation $$$p_1,p_2,\ldots,p_n$$$ of length $$$n$$$ and a positive integer $$$k \le n$$$. In one operation you can choose two indices $$$i$$$ and $$$j$$$ ($$$1 \le i < j \le n$$$) and swap $$$p_i$$$ with $$$p_j$$$.Find the minimum number of operations needed to make the sum $$$p_1 + p_2 + \ldots + p_k$$$ as small as possible.A permutation is an array consisting of $$$n$$$ distinct integers from $$$1$$$ to $$$n$$$ in arbitrary order. For example, $$$[2,3,1,5,4]$$$ is a permutation, but $$$[1,2,2]$$$ is not a permutation ($$$2$$$ appears twice in the array) and $$$[1,3,4]$$$ is also not a permutation ($$$n=3$$$ but there is $$$4$$$ in the array).

Input: Each test contains multiple test cases. The first line contains the number of test cases $$$t$$$ ($$$1 \le t \le 100$$$). Description of the test cases follows.The first line of each test case contains two integers $$$n$$$ and $$$k$$$ ($$$1 \le k \le n \le 100$$$).The second line of each test case contains $$$n$$$ integers $$$p_1,p_2,\ldots,p_n$$$ ($$$1 \le p_i \le n$$$). It is guaranteed that the given numbers form a permutation of length $$$n$$$.

Output: For each test case print one integer — the minimum number of operations needed to make the sum $$$p_1 + p_2 + \ldots + p_k$$$ as small as possible.

Note: In the first test case, the value of $$$p_1 + p_2 + \ldots + p_k$$$ is initially equal to $$$2$$$, but the smallest possible value is $$$1$$$. You can achieve it by swapping $$$p_1$$$ with $$$p_3$$$, resulting in the permutation $$$[1, 3, 2]$$$.In the second test case, the sum is already as small as possible, so the answer is $$$0$$$.

Sample Inputs:
4
3 1
2 3 1
3 3
1 2 3
4 2
3 4 1 2
1 1
1

Sample Outputs:
1
0
2
0

Solution (Python):
t = int(input())
for test in range(t):
    (n, k) = map(int, input().split())
    cnt = 0
    p = list(map(int, input().split()))
    for i in range(k):
        if p[i] > k:
            cnt += 1
    print(cnt)

Solution (Python):
import sys
input = sys.stdin.readline

def int_num():
    return int(input())

def int_list():
    return list(map(int, input().split()))

def insr():
    s = input()
    return list(s[:len(s) - 1])

def invr():
    return map(int, input().split())

def solve():
    (n, k) = int_list()
    lst = int_list()
    ans = 0
    for i in range(k):
        if lst[i] > k:
            ans += 1
    print(ans)

def main():
    test_case = int_num()
    while test_case:
        solve()
        test_case -= 1
    return
if __name__ == '__main__':
    main()

Solution (Python):
import sys
inf = float('inf')
mod = 10 ** 5 + 7
input = lambda : sys.stdin.readline().rstrip()
inpnm = lambda : map(int, input().split())
inparr = lambda : [int(i) for i in input().split()]
inpint = lambda : int(input())
for case in range(inpint()):
    (n, k) = inpnm()
    arr = inparr()
    res = 0
    t = set(arr[:k])
    for i in range(1, k + 1):
        if i not in t:
            res += 1
    print(res)