## Accenture Interview Question

Dev Leads**Country:**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