Шестерёночки
Имя входного файла:
Стандартный ввод
Имя выходного файла:
Стандартный вывод
Ограничение по времени:
2 секунды
Ограничение по памяти:
256 мегабайт
Даны п шестерёнок, некоторые из них соединены между собой. Две сцепленные
могут врашаться только в разных направлениях.
Вам необходимо выяснить, может ли вращаться вся система шестеренок, и если может,
указать наименьшее количество Шестерёнок, которые нужно заставить вращаться.
Формат входного файла
В первой строке записаны два целых числа: п - количество шестерёноколичество
сцеплений между ними (2 < n < 103,1 < m < 105).
В каждой из следующих m строк записаны два различных числа і и j, которые определяют
номера сцепленных шестерёнок. Все шестерёнки пронумерованы целыми числами от 1 до n.
Формат выходного файла
В первой строке запишите одно число к - наименьшее количество шестерёнок, которые нужно
заставить врашаться.
В следующей строке к целых чисел - номера этих шестерёнок. Если решений несколько,
выведите любое из них.
Если запустить все шестерёнки невозможно, выведите -1.
Пример входных и выходных файлов
ввод
6 3
4 5
2 1
3 2
вывод
3
1 4 6
ввод
4 3
1 2
2 4
4 1
вывод
-1
Пояснение к примеру
В первом примере имеется 6 шестерёнок, межде ними 3 соединения. Все они будут
вращаться, если запустить три шестерёнки с номерами 1, 4 и 6.
Во втором примере все шестерёнки вращаться не смогут, поэтому в ответе -1.
//Pascal ABC.NET v3.1 сборка 1172
Var
ma:array of array of integer;
i,j,r,n,m,s:integer;
begin
randomize;
readln(n);
readln(m);
setlength(ma,n);
for i:=0 to n-1 do
setlength(ma[i],m);
writeln('Matrix:');
for i:=0 to n-1 do
begin
writeln;
for j:=0 to m-1 do
begin
ma[i,j]:=random(50);
write(ma[i,j]:4);
end;
end;
writeln;
writeln('Res:');
for i:=0 to n-1 do
begin
for j:=0 to m-1 do
s:=s+ma[i,j];
writeln(i+1,' ',s);
s:=0;
end;
end.
Пример ввода:
10
15
Пример вывода:
Matrix:
12 1 21 15 36 30 12 13 46 40 22 48 20 48 7
48 37 49 25 37 41 29 23 34 45 38 14 21 13 3
48 27 29 26 18 28 24 20 21 41 18 10 48 8 46
5 7 48 9 31 46 35 11 36 41 33 28 37 20 47
15 41 0 43 42 44 19 44 30 29 24 16 28 34 18
30 31 14 37 39 30 16 11 32 6 13 16 42 35 35
0 37 49 23 25 27 10 5 16 2 36 13 18 30 7
30 6 26 18 11 1 14 49 31 17 49 29 17 37 28
28 26 8 44 28 36 16 5 8 41 19 25 47 35 2
17 48 31 25 26 6 39 24 23 33 35 37 18 6 26
Res:
1 371
2 457
3 412
4 434
5 427
6 387
7 298
8 363
9 368
10 394
// Задание №1
var a,b,c:real;
begin
writeln('Введите длины сторон треугольника');
readln(a, b, c);
if (a=b) and (b=c) and(a>0) then
writeln('Равносторонний')
else
writeln('Не равносторонний');
end.
//Задание №2
var
a, b, i, s: integer;
begin
writeln('Введите левую границу диапазона');
readln(a);
writeln('Введите правую границу диапазона');
readln(b);
s := 0;
for i := a to b do
if i mod 2 <> 0 then s := s + i;
writeln('Сумма Нечетных:', s);
end.