__ Problem:-__

In a game, you have the following:

- Pile of
*N*coins - List of restricted coins

Conditions

- A player can choose at most
*K*coins one by one. - They cannot choose a value that is present in the list of restricted coins.
- At the beginning of the game, the list of restricted coins is empty. Whenever a player selects a coin, it is added to their profit and also appended in the list of restricted coins.
- A player can discard a coin even if it is not present in the list of restricted coins.

Task

Your task is to determine the maximum profit that a player can make.

Input format

- The first line contains
*T*denoting the number of test cases. - In each test case:
- The first line contains:
- Two space-separated integers
- Number of coins
*N* - Maximum number of coins that a player can take
*K*

- The second line contains
*N*space-seperated integers denoting the value of the coins.

- The first line contains:

Output format

- For each test case, print a single line denoting the maximum profit a player can make.

Constraints

- 1 <= Value of Coin <= 1e9
- Sum of N over all test cases will not exceed 200000

Time Limit: 1

Memory Limit: 256

Source Limit:

Explanation

Player can choose 2 and 3. He can not choose any number twice as it will be added to restricted coin list.

2 moves will be wasted as he has no other option so profit=2+3=5.

__Code:-__

#include<stdio.h>

int main()

{

long int n,k,t,i;

scanf("%ld",&t);

while(t--)

{

scanf("%ld%ld",&n,&k);

long long int element,a[1000000]={0},sum=0,counter=0;

for(i=0;i<n;i++)

{

scanf("%lld",&element);

if(a[element]==0 && counter<k )

{

sum=sum+element;

counter++;

}

a[element]=1;

}

printf("%lld\n",sum);

}

return 0;

}

## 0 Comments