Timus Online Judge Problem 1001 - "Reverse Root" The problem statement can be found here.

Description (short): 

Input

The input stream contains a set of integer numbers \$A_i\$ (\$0 \le A_i \le 10^{18}\$). The numbers are separated by any number of spaces and line breaks. A size of the input stream does not exceed 256 KB.

Output

For each number \$A_i\$ from the last one until the first one, you should output its square root. Each square root should be printed in a separate line with at least four digits after the decimal point.

#include &lt;iostream&gt;
#include &lt;iomanip&gt;
#include &lt;math.h&gt;
using namespace std;

int main()
{
    double t;
    double v [128 * 1024];
    int idx = 0;
    while (cin &gt;&gt; t) {
        v[idx] = sqrt(t);
        ++idx;
    }

    cout &lt;&lt; fixed;
    cout &lt;&lt; setprecision(4);

    for (int i = idx - 1; i &gt;= 0; --i)
        cout &lt;&lt; v[i] &lt;&lt; endl;

    return 0;
}


I am encountering a TLE on test case 9, with an execution time of 2.031s and memory usage of 1 474 KB.  (The allowable limits are 2.0s and 64 MB.)  How can I improve (or change) my method to complete the problem successfully?
The input stream contains a set of integer numbers \$A_i\$ (\$0 \leq A_i \leq 10^{18}\$).


So you should change

double t;


to

unsigned long long t;


This actually speeds up the program a lot.



To speed up the output, instead of

cout &lt;&lt; fixed;
cout &lt;&lt; setprecision(4);

for (int i = idx - 1; i &gt;= 0; --i)
    cout &lt;&lt; v[i] &lt;&lt; endl;


Try

for (int i = idx - 1; i &gt;= 0; --i) {
    printf("%.4f\n", v[i]);
}