Задача 1 Квадландия (50 баллов)
Имя входного файла: square.in
Имя выходного файла: square.out
Максимальное время работы на одном тесте: 1 секунда
Ограничение по памяти: 64 MB
Все дети Квадландии любят мороженое. И только если бы не взрослые, дети Квадландии целыми днями ели бы мороженое. Но, увы, эти взрослые каждый раз придумывают что-то новенькое, чтобы не дать детям вволю наесться холодным лакомством. На этот раз было решено, что порция мороженого будет продана только за такое число квадов (квад – национальная валюта Квадландии), которое является квадратом натурального числа.
У мальчика Вовы уже есть N квадов. Каждый день, если мальчик не ел мороженого, родители дают ему несколько квадов. В первый день своего послушания Вова получит 1 квад, во второй – 3 квада, … в K-й день – (2K-1) квада. Вова не хочет тратить часть своих денег на покупку мороженого. Если уж и покупать мороженое, то на все деньги! Помогите Вове определить, сколько дней ему нужно копить деньги.
Формат входных данных
В первой строке находится одно целое число N (1 ≤ N ≤ 109) – количество квадов, которые есть у Вовы.
Формат выходных данных
Выведите первой строкой целое число K – количество дней, по истечении которых мальчик сможет купить мороженое. Если ответов несколько, то выведите любой. В случае если Вова никогда не сможет насладиться вкусом мороженого, выведите «-1» (без кавычек).
Пример
square.in square.out
5 2
2 -1
8 0
Вроде бы я написал прогу,но в ней что-то ,по-моему,не так...Вот код-
program qwadland;
{$APPTYPE CONSOLE}
uses
SysUtils;
var a,c,z,n:longint;
x:word;
begin
assign(input,'square.in');reset(input);
assign(output,'square.out');rewrite(output);
readln(a);
repeat
randomize;
x:=random(5);
until n>=a;
n:=x*x+2*x+1;
c:=n-a;
if c<0 then writeln('-1') else
if (c+1) mod 2<>0 then writeln('-1')else
if (c+1)mod 2=0 then
begin
z:=(c+1)div 2;
end;
writeln(z);writeln('pri x($)=',x);
end.