Формат входного файла
В первой строке входного файла input.txt находится одно натуральное число p (2 ≤ p ≤ 1000), равное произведению размеров исходного изображения. В следующей строке перечислены p цветов пикселей самого изображения. Сначала перечислены цвета пикселей первой строки слева направо, затем — второй, и так далее. Цвета пикселей разделены пробелами, каждый цвет является числом, равным 0, если пиксель белый, или 1, если пиксель черный.
Формат выходного файла
В первой строке выходного файла output.txt требуется вывести два числа n и m таких, что их произведение равно числу p. Кроме этого, после записи данных во входном файле пикселей в таблицу из n строчек и m столбцов, должна получаться таблица, в которой ровно один столбец полностью состоит из единиц, а вся остальная таблица заполнена нулями.
В случае, если ответов, отвечающих описанным выше условиям, несколько, выведите любой. В случае, если ни одного ответа не существует, выведите в выходной файл слово Impossible.
Пример входных и выходных данных
input.txt
6
0 1 0 0 1 0
output.txt
2 3
input.txt
12
0 0 1 0 0 0 1 0 0 0 1 0
output.txt
3 4
input.txt
12
0 0 1 0 0 0 1 0 0 0 0 0
output.txt
Impossible
const InFIle='Input.txt'; OutFile='output.txt';
var
f : text;
n,m,p,c : word;
b,otstup : byte;
first,error : boolean;
Begin
assign(f,InFile); reset(f);
readln(f,p); n:=0; c:=0; first:=true; otstup:=0; error:=false;
while (not eof(f)) and (not error) do begin
read(f,b); inc(c); inc(n);
if b=1 then begin
if first then begin
first:=otstup=0;
otstup:=c;
m:=n;
end else begin
error:=n<>m;
end;
n:=0;
end;
end;
close(f);
n:=n+otstup-m;
error:=error or (p mod n <> 0) or (p<>c) or (m<>n);
n:=p div m;
assign(f,OutFile); rewrite(f);
if error then writeln(f,'Impossible')
else writeln(f,n,' ',m);
close(f);
writeln('Result in file ',OutFile);
readln;
End.