Accenture Interview Question
Dev LeadsCountry: India
Interview Type: Phone Interview
#include <bits/stdc++.h>
using namespace std;
int counts = 0;
void part(int *arr, int s, int e){ //nlogn
int part_i = -1, mini = e - s + 1;
int m1 = (s+e)/2, m2 = (s+e)/2 + 1;
for(int i = s; i <= e; i++){
int temp = -1;
if(arr[i]){
temp = abs(m1 - i);
if((s-e)%2) temp = min(temp, abs(m2-i));
if(temp < mini) part_i = i, mini = temp;
}
}
if(part_i == -1) return;
else counts += e-s;
if(s != part_i) part(arr, s, part_i - 1);
if(e != part_i) part(arr, part_i + 1, e);
}
int main(){
int n, m; cin >> n >> m;
int *arr = new int[n];
for (int i = 0; i < n; i++) arr[i] = 0;
for (int i = 0; i < m; i++) {
int a; cin >> a; a--;
arr[a] = 1;
}
part(arr, 0, n-1);
cout << counts << endl;
return 0;
}
#include <bits/stdc++.h>
using namespace std;
int counts = 0;
void part(int *arr, int s, int e){ //nlogn
int part_i = -1, mini = e - s + 1;
int m1 = (s+e)/2, m2 = (s+e)/2 + 1;
for(int i = s; i <= e; i++){
int temp = -1;
if(arr[i]){
temp = abs(m1 - i);
if((s-e)%2) temp = min(temp, abs(m2-i));
if(temp < mini) part_i = i, mini = temp;
}
}
if(part_i == -1) return;
else counts += e-s;
if(s != part_i) part(arr, s, part_i - 1);
if(e != part_i) part(arr, part_i + 1, e);
}
int main(){
int n, m; cin >> n >> m;
int *arr = new int[n];
for (int i = 0; i < n; i++) arr[i] = 0;
for (int i = 0; i < m; i++) {
int a; cin >> a; a--;
arr[a] = 1;
}
part(arr, 0, n-1);
cout << counts << endl;
return 0;
}
import math as m
No_of_cubicles = int(input('''NO. of cubicles are there \n(eg: if 20 cubicles are there please input 20 and press enter):''') )
sent_people_index_no = input('''Index no of people to be sent \n(eg: if index no's are 0,1,2 then input as 0,1,2 and press enter ):''' )
list_of_sent_people_index_nos = sent_people_index_no.split(',')
list_of_left_people_index_no = []
gifts_needed_to_index_no =[]
No_of_people_left = No_of_cubicles - len(list_of_sent_people_index_nos)
for left_people_index_no in range(No_of_cubicles):
if str(left_people_index_no) not in list_of_sent_people_index_nos:
list_of_left_people_index_no.append(left_people_index_no)
for k in list_of_left_people_index_no:
for c in list_of_sent_people_index_nos:
if k == int(c) - 1 or k == int(c) + 1:
gifts_needed_to_index_no.append(k)
s = set(gifts_needed_to_index_no)
print('no. of gifts requried is',len(s))
import math as m
No_of_cubicles = int(input('''NO. of cubicles are there \n(eg: if 20 cubicles are there please input 20 and press enter):''') )
sent_people_index_no = input('''Index no of people to be sent \n(eg: if index no's are 0,1,2 then input as 0,1,2 and press enter ):''' )
list_of_sent_people_index_nos = sent_people_index_no.split(',')
list_of_left_people_index_no = []
gifts_needed_to_index_no =[]
No_of_people_left = No_of_cubicles - len(list_of_sent_people_index_nos)
for left_people_index_no in range(No_of_cubicles):
if str(left_people_index_no) not in list_of_sent_people_index_nos:
list_of_left_people_index_no.append(left_people_index_no)
for k in list_of_left_people_index_no:
for c in list_of_sent_people_index_nos:
if k == int(c) - 1 or k == int(c) + 1:
gifts_needed_to_index_no.append(k)
s = set(gifts_needed_to_index_no)
print('no. of gifts requried is',len(s))
- Anonymous September 22, 2015