Problem:
Score : 200 points

Problem Statement

There is a kangaroo at coordinate 0 on an infinite number line that runs from left to right, at time 0.
During the period between time i-1 and time i, the kangaroo can either stay at his position, or perform a jump of length exactly i to the left or to the right.
That is, if his coordinate at time i-1 is x, he can be at coordinate x-i, x or x+i at time i.
The kangaroo's nest is at coordinate X, and he wants to travel to coordinate X as fast as possible.
Find the earliest possible time to reach coordinate X.

Constraints

X is an integer.

1≤X≤10^9

Input

The input is given from Standard Input in the following format:

X

Output

Print the earliest possible time for the kangaroo to reach coordinate X.

Sample Input 1

6

Sample Output 1

3

The kangaroo can reach his nest at time 3 by jumping to the right three times, which is the earliest possible time.

Sample Input 2

2

Sample Output 2

2

He can reach his nest at time 2 by staying at his position during the first second, and jumping to the right at the next second.

Sample Input 3

11

Sample Output 3

5

Solution in PHP (5.6.30) (judge verdict: Time Limit Exceeded)

<?php
error_reporting(0);
$stdin = file_get_contents('php://stdin');
$line = explode("\n",$stdin);
$fi = 0;
$cnt = 0;
$list = array();
$key = new stdclass();
foreach($line as $l) {
  if (strlen($l)==0) continue;
  if ($fi == 0) {
    $a = explode(" ",$l);
    $key->A = $a;
    $fi++;
    continue;
  }
  if ($fi > 0) {
    $a = explode(" ",$l);
    $key->X[] = $a;
  }
}
$X = $key->A[0];
$pos = 0;
$max = 0;
for($i=0;$i<$X;$i++) {
  $pos += $i+1;
  if ($pos == $X) {
    printf("%d\n",$i+1);
    exit;
  }
  if ($pos > $X) {
    $max = $i;
    break;
  }
}
//どこか一か所飛ばして到着するか調べる
for($j=0;$j<$X;$j++) {
  $pos = 0;
  for($i=0;$i<$X;$i++) {
    if ($i!=$j)  $pos += $i+1;
    if ($pos == $X) {
      printf("%d\n",$i+1);
      exit;
    }
  }
}
//2か所飛ばさないとだめだったら？？？