Skip to main content

Hackerrank CounterCode 2015 Campers

Problem Statement

Time is running out. You have a final match to play as a counter terrorist. You have N players each having a distinct ID from 1 to N. You have to choose some players on your team from these N players such that no two chosen players have consecutive numbers (as they tend to kill each other). Also you definitely have to choose some K players whose numbers are given. They are the snipers. Find the maximum number of players that you can choose.

Input Format

 The first line contains 2 space-separated integers, N and K, where N is the total number of players and K is the number of players that have to be definitely in the team (the snipers).
The second line contains K space-separated integers that are the IDs of the snipers.

NOTE: There are no two snipers with consecutive numbers.

Constraints

2N2×106
1KN/2
1 ID of each sniper N

Output Format

You need to print the maximum number of players that you can have in your team.

Sample Input
 
8 2
6 2

Sample Output
 
4

Explanation

There are 8 players in total, among which you have to definitely choose players with ID 2 and 6.

To maximize the number of players in the team, you will choose the players with IDs 4 and 8, so that you will have a total of 4 players.

Camper: A player in a professional team dedicated to using the AWP sniper rifle.

#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
int compare(const void * a, const void * b)
{
   return (*(long long int*)a>*(long long int*)b);
}
int main()
{
   long long int n,k,i,d,sum=0,e;
    scanf("%lld %lld",&n,&k);
   long long int s[k];
   for(i=0;i<k;i++) 
   {
      scanf("%lld",&s[i]);
   }
   qsort(s,k,sizeof(long long int),compare);
   
    d=s[0]-0;
    if((d-2)%2>0){
        e = ((d-2)%2); 
        sum += e;
    }
    if((d-2)/2>0){
        e=((d-2)/2);
        sum += e;
    }
    
   d=n-s[k-1];
    
    if((d-1)%2>0){
        e=((d-1)%2);
        sum += e;
    }
    if((d-1)/2>0){
        e=((d-1)/2); 
        sum += e;
    }
    
   for(i=1;i<k;i++){
       d=s[i]-s[i-1];
       if((d-3)/2>0){
            e=((d-3)/2);
            sum += e;
       }
       if((d-3)%2>0){
       e=((d-3)%2);
       sum += e;
       }
   }
    
   printf("%lld",sum+k);
   return 0;
}

Comments

Popular posts from this blog

C Questions

C Questions
C Questions

Note : All the programs are tested under Turbo C/C++ compilers.
It is assumed that,
Programs run under DOS environment, The underlying machine is an x86 system, Program is compiled using Turbo C/C++ compiler.
The program output may depend on the information based on this assumptions (for example sizeof(int) == 2 may be assumed).
Predict the output or error(s) for the following:

void main()
{
int const * p=5; printf("%d",++(*p));
}
Answer:
Compiler error: Cannot modify a constant value.
Explanation:
p is a pointer to a "constant integer". But we tried to change the value of the "constant integer".
main()
{
char s[ ]="man"; int i;
for(i=0;s[ i ];i++)
printf("\n%c%c%c%c",s[ i ],*(s+i),*(i+s),i[s]);
}
Answer: mmmm
aaaa nnnn
Explanation

Zoho Interview | Set 1 (Advanced Programming Round)

Third Round: (Advanced Programming Round) Here they asked us to create a “Railway reservation system” and gave us 4 modules. The modules were:
    1. Booking
    2. Availability checking
    3. Cancellation
    4. Prepare chart
We were asked to create the modules for representing each data first and to continue with the implementation phase.

 My Solution :

#include<stdio.h>#include<conio.h>#include<stdlib.h>#include<string.h>#include<iostream.h>#include<time.h>#include<iomanip.h>#include<fstream.h>char f[10]="f";char s[10]="s";int addr,ad,flag,f1,d,m,i,amt;float tamt; class login {public:char id[100];char pass[100];char*password;void getid(){ cout<<"Enter your id:";gets(id); password=getpass("Enter the password:");strcpy(pass,password);}void displayid(){ cout<<"Id:";puts(id); cout<<"Password:";puts(pass);}}; class detail {public:in…

Hackerrank > SQL > Basic Select

Select
01-Select All
Given a City table, whose fields are described as +-------------+----------+ | Field       | Type     | +-------------+----------+ | ID          | int(11)  | | Name        | char(35) | | CountryCode | char(3)  | | District    | char(20) | | Population  | int(11)  | +-------------+----------+
write a query that will fetch all columns for every row in the table.

My Solution
SELECT*FROM city;
---------------------------------------------------------------------------------
02-Select by ID
Given a City table, whose fields are described as