+ 2

Two kingdoms are at war. Kingdom 1 has N soldiers (numbered as 1 to N) and the war goes on for K days. Each day only one soldi.

Kingdom 1 can select one soldier from soldier number Ni to Nj. Ni and Nj are provided to you for each day. Selection criteria: Each soldier has 2 parameters - A & B. A soldier is/are selected if A is max. If more than one soldier has A max then the soldier with min. B (of the shortlisted soldiers) is/are selected. If more than one soldier is still available, then the soldier with least index (of the shortlisted soldiers) is selected. Print the soldier number selected for each day of the war.

29th Nov 2016, 3:46 AM
pratiksha chavan
pratiksha chavan - avatar
6 Answers
+ 1
Hey Can anyone explain the question. Its bit of confusing?
11th Feb 2017, 11:23 AM
Akshay Kale
Akshay Kale - avatar
0
Input:  Line 1 contains number of soldiers of Kingdom1 => N Line 2 contains N space-separated values of A Line 3 contains N space-separated values of B Line 4 contains number of days fight goes on => K Next K lines contain space separated values of Ni and Nj Output:  K lines contain soldier number selected for each day of the war. Sample Input: 10 2 5 3 7 9 2 9 8 7 15 5 2 1 8 3 1 2 9 0 5 3 1 5 3 8 4 10
29th Nov 2016, 3:47 AM
pratiksha chavan
pratiksha chavan - avatar
0
where is the prog....
8th Feb 2017, 3:42 AM
Mahesh Dhotre
Mahesh Dhotre - avatar
0
import sys def chkIfDigit(arg):# Validation       if not (arg.isdigit()):          print(arg,'Please enter only positive number')          sys.exit()       return arg N = int(chkIfDigit(input('N : ')))# No of Soldiers A = input('A : ').strip().split(' ') A = list(map(lambda x: chkIfDigit(x), A)) B = input('B : ').strip().split(' ') B = list(map(lambda x: chkIfDigit(x), B)) if (len(A) != len(B)) or len(B) != N:    print('Length of A,B and N sholud be same')    sys.exit() K = int(chkIfDigit(input('K : ')))# No of Days if K == '0':       print('K cannot be 0')       sys.exit() for i in range(K):# Main Logic    ni,nj=int(chkIfDigit(input('ni : '))),int(chkIfDigit(input('nj : ')))    if ni == '0':       print('ni cannot be 0')       sys.exit()    if(ni>nj):       print('ni cannot be greater then nj')       sys.exit()    tempListA = A[ni:nj]    tempListB = B[ni:nj]    minB = []    maxA = max(tempListA)    for i in range(len(tempListA)):        if tempListA[i] == maxA:            minB.append(tempListB[i])  
8th Mar 2020, 5:31 PM
shivam
shivam - avatar
- 1
:(
11th Jan 2017, 1:10 PM
Sunil Bhadrashetti
Sunil Bhadrashetti - avatar
- 1
function war() { var params = arguments; var arrSpace = []; for(var i = 4; i < params.length; i++) { arrSpace.push(params[i]); } var obj = { a: 0, b: 0, index: 0 }; var valOfA = 0; arrSpace.forEach(function (space){ for(var i = space[0]-1; i < space[1]; i++) { if(obj.a === params[1][i]) { if(obj.b > params[2][i]) { obj.b = params[2][i]; obj.index = i+1; } } if(valOfA < params[1][i] && params[1][i] > params[2][i]) { valOfA = params[1][i]; obj.a = params[1][i]; obj.b = params[2][i]; obj.index = i + 1; } } console.log(obj.index); }); } var numOfSol = 10; var arrA = [2, 5, 3, 7, 9, 2, 9, 8, 7, 15]; var arrB = [5, 2, 1, 8, 3, 1, 2, 9, 0, 5]; var days = 3; war(numOfSol, arrA, arrB, days, [1,5], [3, 8], [4, 10]);
8th Feb 2017, 8:37 PM
Vinit Agarwal
Vinit Agarwal - avatar