Given n positive real numbers, find whether there exists a triplet among this set such that, the sum of the triplet is in the range (1, 2). Do it in linear time and O (1) space.

the following code computes the required triplet value

def triple_with_sum_in_range12(nrs):

a = [n for n in nrs if 0 < n < 1]

b = [n for n in nrs if 1 <= n < 2]

min3a = max3a = a[:3]

for n in a[3:]:

```
min3a = sorted(min3a + [n])[:3]
max3a = sorted(max3a + [n])[1:]
```

if len(a) >= 3:

```
if 2 <= sum(min3a):
return None
elif 1 < sum(min3a) < 2:
return min3a
if 1 < sum(max3a): # (*) tricky case
for i in xrange(4):
if 1 < sum(min3a[:i] + max3a[i:]) < 2:
return min3a[:i] + max3a[i:]
```

if len(a) >= 2 and len(b) >= 1:

```
triple = min3a[:2] + [min(b)]
if sum(triple) < 2:
return triple
```