Решение задач: Составители

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам



Составители:

Ильина Е.А,

Волынская О.С,

учителя информатики КГУ «Гимназия №9» г.Караганды



















Для подготовки олимпиадников успешно используется дистанционная тестирующая система «Школа программиста», которая содержит 1000 задач различного уровня сложности и тематики. Данная система позволяет автоматически проверять решения задач на различных языках программирования.

Данный сборник содержит разбор олимпиадных задач по программированию с сайта acmp.ru по теме «Задачи для начинающих». Для каждой задачи приводится полный листинг программы на С++.

№

№ задачи

на acmp.ru

Задача

Сложность

Стр.

Линейные алгоритмы

1

1

A+B

1%

5

2

108

Неглухой телефон

1%

6

3

903

Бисер

2%

6

4

942

Олимпиада

2%

7

5

195

Эния

3%

8

6

4

Игра

4%

8

7

33

Два бандита

4%

9

8

773

Гулливер

4%

10

9

92

Журавлики

7%

11

10

819

Прямоугольный параллелепипед

10%

11

11

756

Рыболовная сеть

10%

12

12

697

Ремонт

11%

12

13

843

Экзамены

20%

13

14

780

Футбол

22%

14

15

900

Три грибника

23%

14

Разветвляющиеся алгоритмы

16

25

Больше-меньше

3%

16

17

766

Орешки

3%

16

18

21

Зарплата

4%

17

19

8

Арифметика

5%

17

20

61

Баскетбол

5%

18

21

755

Сбор земляники

6%

19

22

539

Торт

6%

19

23

754

Три толстяка

7%

20

24

907

Мышка

9%

20

25

970

От перестановки что-то меняется ...

9%

21

26

597

Внеземные гости

10%

21

27

757

Спирт

10%

22

28

892

Время года

10%

22

29

685

Золотой песок

10%

23

30

777

Будильник

12%

23

31

854

Кондиционер

12%

24

32

933

Телефон

12%

25

33

948

Строки в книге

13%

25

34

550

День программиста

13%

26

35

794

Ролевая игра

15%

27

36

850

Цапли

15%

27

37

929

Игральные кубики

15%

28

38

263

Метро

16%

29

39

844

Поля

16%

30




№

№ задачи

на acmp.ru

Задача

Сложность

Стр.

40

294

Болты и гайки

17%

30

41

606

Треугольник - 3

17%

31

42

952

В автобусе

18%

32

43

925

Кастинг

19%

32

44

511

Очередь

20%

34

45

68

Дом - Школа - Дом

21%

34

46

499

Турист

22%

35

47

667

Автобусы - 2

28%

36

Циклические алгоритмы

48

106

Монетки

8%

37

49

692

Бинарные числа

8%

38

50

35

Конечные автоматы

11%

38

51

81

Арбузы

14%

39

52

233

Автобусная экскурсия

14%

39

53

131

Перепись

15%

40

54

818

Кипячение чая

14%

41

55

264

Оттепель

17%

42

56

949

Фибоначчиева последовательность

17%

42

57

778

Офис

18%

43

58

694

Лентяй

21%

44

59

888

Карусель

22%

44

60

947

Карточки - 3

22%

45

61

760

Транспорт

24%

46

62

716

Треугольник Максима

25%

47

63

272

Сумма максимума и минимума

26%

49

64

409

Железная дорога

26%

49

65

779

Строительство школы

30%

50

Массивы

66

149

Разворот

9%

51

67

284

Подмассив массива

15%

52

68

496

Сбор черники

17%

52

69

637

NEERC

17%

53

70

293

Налоги

20%

54

71

912

Одежда

24%

55

72

534

Клавиатура - 2

25%

56

73

579

Модуль суммы

25%

57



№

№ задачи

на acmp.ru

Задача

Сложность

Стр.

Строки

74

324

Четырехзначный палиндром

10%

58

75

66

Клавиатура

11%

58

76

504

Цветочки

12%

59

77

940

Орфография

13%

59

78

839

Всем известно

14%

60

79

331

Время прибытия

15%

61

80

43

Нули

16%

62

81

297

Кругляши

16%

62

82

711

Соревнование картингистов

18%

63

83

895

Крестики-нолики

19%

64

84

46

Число E

20%

65

85

336

Лифт

20%

66

86

387

Левая рекурсия

20%

67

87

633

ACM World Finals

20%

68

88

675

Детали

20%

69

89

315

Наименьшая система счисления

26%

69

90

277

Школьная алгебра

27%

70

Шахматы

91

935

Шахматное поле

16%

72

92

798

Шахматная доска - 2

18%

72

93

763

Игра с ладьей

19%

73

94

791

Соседние клетки

22%

73

95

416

Шахматный конь

25%

74
















Линейные алгоритмы


Задача 1 (№ 1) A+B (Сложность: 1%)


Требуется сложить два целых числа А и В.

Входные данные. В единственной строке входного файла INPUT.TXT записано два натуральных числа через пробел, не превышающих 109.

Выходные данные. В единственную строку выходного файла OUTPUT.TXT нужно вывести одно целое число — сумму чисел А и В.


# include

using namespace std;


№

INPUT.TXT

OUTPUT.TXT

1

2 3

5
int main(){

    int a,b;

cin>>a>>b;

cout<
return 0;

}

Тестирующая система acmp.ru позволяет проверять решения задач без входных/выходных файлов. Но при проведении многих олимпиад нужна работа с файлами. Предлагаем несколько вариантов работы с файлами:

#include

 using namespace std;

 int a,b;

 int main(){

freopen("input.txt","r",stdin);

freopen("output.txt","w",stdout);

  cin >> a >> b;

  cout << a+b;

  return 0;

}

#include

long a,b;

int main(){

  freopen("input.txt","r",stdin);

  freopen("output.txt","w",stdout);

  scanf("%ld%ld",&a,&b);

  printf("%ld",a+b);

  return 0;

}





#include

#include

using namespace std;

int main()

{

 ifstream input; 

 ofstream output;

 input.open("input.txt");

 output.open("output.txt");

 int a,b;

 input >> a; //ввод данных

 input >> b;

 output << a+b; // вывод данных

 return 0; }

Задача 2 (№ 108) Неглухой телефон (Сложность: 1%)


Возможно, что Вы когда то играли в игру «Глухой телефон», либо слышали о ней. В этой игре участникам приходится передавать информацию друг другу различными способами: словесно, образно, бывает даже приходится писать левой рукой текст, который другой участник команды должен будет прочитать. Так же известно, что практически никогда передаваемая информация не доходит до конечного адресата. Обозначим за Fi(x) функцию, которая преобразует текст передаваемой информации x в ту, которую получит участник i+1 от участника i. Тогда последний n-й участник получит данные y, которые будут выражаться следующей формулой: y = Fn-1(Fn-2(…F2(F1(x))))

Но Вам необходимо исключить какие-либо внешние факторы, которые могут исказить исходную информацию и Вы должны реализовать программу «неглухой телефон», которая сможет безошибочно доставлять исходные данные, т.е. в нашем случае функция Fi(x) = x для всех i от 1 до n-1.

Входные данные



№

INPUT.TXT

OUTPUT.TXT

1

5

5
В единственной строке входного записано натуральное число от 1 до 100.

Выходные данные



Иногда полезно, увидев большой текст задания обратить внимание на входные и выходные данных, порой этого оказывается достаточно для решения задачи.

В выходной файл нужно вывести в точности то же число, которое задано во входном файле.
# include

using namespace std;

int main(){

int a;

cin>>a;

cout<

return 0;

}
Источник: https://tut-files.ru/previewfile/107733