Problem:
Score : 400 points

Problem Statement

Given is an integer S.
Find a combination of six integers X_1,Y_1,X_2,Y_2,X_3, and Y_3 that satisfies all of the following conditions:

0 \leq X_1,Y_1,X_2,Y_2,X_3,Y_3 \leq 10^9

The area of the triangle in a two-dimensional plane whose vertices are (X_1,Y_1),(X_2,Y_2), and (X_3,Y_3) is S/2.

We can prove that there always exist six integers that satisfy the conditions under the constraints of this problem.

Constraints

1 \leq S \leq 10^{18}

All values in input are integers.

Input

Input is given from Standard Input in the following format:

S

Output

Print six integers X_1,Y_1,X_2,Y_2,X_3, and Y_3 that satisfy the conditions, in this order, with spaces in between.
If multiple solutions exist, any of them will be accepted.

Sample Input 1

3

Sample Output 1

1 0 2 2 0 1

The area of the triangle in a two-dimensional plane whose vertices are (1,0),(2,2), and (0,1) is 3/2.
Printing 3 0 3 1 0 1 or 1 0 0 1 2 2 will also be accepted.

Sample Input 2

100

Sample Output 2

0 0 10 0 0 10

Sample Input 3

311114770564041497

Sample Output 3

314159265 358979323 846264338 327950288 419716939 937510582

Solution in C# (Mono 4.6.2.0) (judge verdict: Wrong Answer)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Solution
    {
        public long Proc(string Source)
        {
            long n = Source.Length;
            long src = long.Parse(Source);
            long number = 0;

            if (n % 2 == 0)
            {
                for (long i = 1; i < n; i += 2)
                {
                    number += (long)Math.Pow(10, i) - (long)Math.Pow(10, i - 1);
                }
            }
            else
            {
                for (long i = 1; i < n; i += 2)
                {
                    number += (long)Math.Pow(10, i) - (long)Math.Pow(10, i - 1);
                }

                number += (src % (long)Math.Pow(10, n - 1)) + 1 +
                    ((src / (long)Math.Pow(10, n - 1) - 1) * (long)Math.Pow(10, n - 1));
            }

            return number;
        }

        public long Proc2(string Source)
        {
            long src = long.Parse(Source);
            long count=0;

            for (long i = 1; i <= src; i++)
            {
                if (i.ToString().Length % 2 == 1) count++;
            }

            return count;
        }
    }

    public class Program
    {
        static void Main(string[] args)
        {
            try
            {
                var str = Console.ReadLine();
                Console.WriteLine("{0} {1} {2} {3} {4} {5}", 0, 0, 1, 0, 1, str);
                //var str = Console.ReadLine();
                //var s = new Solution();
                //var re = s.Proc(str);
                //Console.WriteLine(re);

                //Random rnd = new System.Random();
                //while (true)
                //{
                //    string src = rnd.Next(1, 10000).ToString();
                //    var s = new Solution();
                //    s.Proc2("901");
                //    s.Proc("901");
                //    if (s.Proc(src) != s.Proc2(src))
                //    {
                //        throw new Exception("");
                //    }
                //    Console.WriteLine("Cp");
                //}

                //var str = Console.ReadLine();
                

            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

            //Console.WriteLine("終了");
            //Console.Read();
        }


    }
}