Задание 4 номер 243 информатика

Просмотров: 14 856

Задание 4 ОГЭ по информатике:

Задание 4 ОГЭ по информатике – Кратчайший путь в графе с ограничениями
🔥Не забываем подписываться!🔥


Между населёнными пунктами A, B, C, D, E построены дороги, протяжённость которых (в километрах) приведена в таблице.

Определите длину кратчайшего пути между пунктами A и Е, проходящего через пункт С. Передвигаться можно только по дорогам, протяжённость которых указана в таблице.


❗❗❗Разбор 4 задания начинается с 08:08 минуты

Смотрите наши разборы заданий ОГЭ по информатике 2022 на канале ФИЗИНФИКА
Наша группа в ВК: https://vk.com/fizinfika

Готовься с нами на 💯

✅ Наша группа в ВК
✅ Открытый курс по подготовке к ОГЭ по информатике 2022
✅ Присылайте задания ОГЭ по информатике сюда

Смотрите также:
✅ Разбор демоверсии огэ по информатике 2022
✅ Запись стримов 2022 ОГЭ Информатика

Задонатить денежку можно тут – https://www.donationalerts.com/r/nikolya29

Будем благодарны, если вы поделитесь данной записью со своими друзьями в социальных сетях, оставите отзыв и посмотрите другие материалы на нашем сайте.

Перейти к контенту

ОГЭ-2020


Решение ГИА в форме ОГЭ по информатике 4 задание из демоверсии 2021 года. Задание на умение анализировать простейшие модели объектов

Давайте познакомимся с условием поставленной задачи.

Между населёнными пунктами A, B, C, D, E построены дороги, протяжённость которых (в километрах) приведена в таблице.

таблица протяженность дороги

таблица протяженность дороги

Определите длину кратчайшего пути между пунктами A и Е, проходящего через пункт С. Передвигаться можно только по дорогам, протяжённость которых указана в таблице.

Ответ: 8.


Давайте проведем визуализацию данной таблицы.

Решение ОГЭ по информатике 2021 г. Задача № 4

Мы представили входную информацию в более наглядном виде. Из табличной структуры получили структуру в виде графов. Из полученного рисунка видно, что анализ будет проходить гораздо лучше. Мы должны найти кратчайший путь между пунктом А и Е проходящий через пункт С. Для этого просто переберем все данные маршруты.

Решение ОГЭ по информатике 2021 г. Задача № 4

Ответ: 8.


Изменения структуры и содержания КИМ 2021 отсутствуют.

Решение ОГЭ по информатике 2021 г. Задача № 4

ГДЗ по математике 4 класс Моро 1, 2 часть учебник

Авторы: М. И. Моро, С. И. Волкова, М. А. Бантова, Г. В. Бельтюкова, С. В. Степанова

Издательство: Просвещение

Тип книги: Учебник

ГДЗ учебника Математика 4 класс М. И. Моро С. И. Волковой М. А. Бантовой Г. В. Бельтюковой С. В. Степановой часть 1, 2. Издательство: Просвещение, серия: Школа России. Состоит из двух частей (112 страниц) ФГОС.

Математика является одним из важнейших предметов, сопровождающих учащихся на протяжении всего курса средней школы. Для многих ребят предмет станет профильным при поступлении в высшие учебные заведения. Подготовка к этому процессу начинается с начальных классов, с самого первого знакомства с математикой. Школьникам важно не упустить в процессе освоения предмета даже самые незначительные детали, которые могут стать камнем преткновения в понимании дальнейших тем, что, непременно, приведет к слабым знаниям по предмету.

Разработанный сайтом ЯГДЗ решебник ГДЗ к учебному Моро 4 класс пособию четвертого класса поможет структурировать полученные знания, правильно решить, сформулировать и записать ответы на практические задания, в том числе содержащие элемент нестандартности. Постоянный процесс самопроверки позволит избежать досадных ошибок, а накопленные положительные баллы в течение учебного года укрепят репутацию ученика, как прилежного и трудолюбивого математика. Дети без труда смогут решить упражнения по основам нумерации, математическим действиям, геометрическим фигурам и величинам. Блок заданий для расширения и углубления знаний покажет потенциал каждого в изучении предмета.

Часть 1

1 2 3 4 5 6 7 8 9 10 Проверь себя и оцени свои успехи Ребусы 11 12 13 14 15 16 17 18 19 20 21 22 Проверь себя и оцени свои успехи 23 24 25 26 27 28 Проверь себя и оцени свои успехи 29 30 31 32 33 34 35 36 Проверь себя и оцени свои успехи Ребусы 37 38 39 40 41 42 43 Проверь себя и оцени свои успехи Цепочка 44 45 46 47 48 49 50 51 52 53 Проверь себя и оцени свои успехи 54 55 56 57 58 59 Проверь себя и оцени свои успехи 60 61 62 63 64 65 66 67 Проверь себя и оцени свои успехи Ребус 68 69 70 71 72 73 Проверь себя и оцени свои успехи Ребус 74 75 76 77 78 79 80 Проверь себя и оцени свои успехи Цепочка 81 82 83

Что узнали. Чему научились

1 2 3 4 5 6 7 8 9 10 11 Задание на полях 12 13 14 15 Вопросы для повторения Ребус Странички для любознательных
84 85 86 87 88 89 90 91 92 93 Проверь себя и оцени свои успехи 94 95 96 97 98 99 Проверь себя и оцени свои успехи Задание на полях 100 101 102 103 104 105 106 Проверь себя и оцени свои успехи Цепочка 107 108 109 110 111 112 113 114 115 116 Проверь себя и оцени свои успехи 117 118 119 120 121 122 123 124 Проверь себя и оцени свои успехи Ребус 125 126 127 128 129 130 131 132 133 Проверь себя и оцени свои успехи Задание на полях 134 135 136 137 138 139 140 141 142 Проверь себя и оцени свои успехи 143 144 145 146 147 Магический квадрат Странички для любознательных

Что узнали. Чему научились

1 2 3 4 5 6 7 8 9 10 11 Задание на полях 12 13 14 15 16 17 Цепочка
149 150 Ребус 151 152 153 154 155 Проверь себя и оцени свои успехи Ребус 156 157 158 159 160 161 162 163 164 165 Проверь себя и оцени свои успехи 166 167 168 169 170 171 172 173 174 175 176 177 Проверь себя и оцени свои успехи 179 180 181 182 183 184 185 186 187 188 189 190 Проверь себя и оцени свои успехи Задание на полях 191 192 Цепочка 193 194 195 196 197 198 199 Проверь себя и оцени свои успехи 200 201 202 203 204 205 206 207 208 Проверь себя и оцени свои успехи 210 211 212 213 214 215 216 Проверь себя и оцени свои успехи 217 218 219 220 221 222 Проверь себя и оцени свои успехи 224 225 226 227 228 229 230 Проверь себя и оцени свои успехи 231 232 233 234 235 236 237 238 Проверь себя и оцени свои успехи 239 240 241 242 243 244 245 Проверь себя и оцени свои успехи 247 248 249 250 251 252 253 Проверь себя и оцени свои успехи 255 256 257 258 259 Ребус

Что узнали. Чему научились

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 Задание на полях Составляй и решай задачи Тест
260 261 262 263 264 265 266 Проверь себя и оцени свои успехи Ребус 267 268 269 270 271 272 273 274 275 Проверь себя и оцени свои успехи 276 277 278 279 280 281 282 Проверь себя и оцени свои успехи Ребус 283 284 285 286 287 288 289 290 Проверь себя и оцени свои успехи Задание на полях 291 292 293 294 295 Проверь себя и оцени свои успехи Ребус 296 297 298 299 300 301 302 303 304 305 Проверь себя и оцени свои успехи 306 307 308 309 310 311 312 Проверь себя и оцени свои успехи Магический квадрат Задание на полях 313 314 315 316 317 318 Проверь себя и оцени свои успехи 319 320 321 322 323 324 Ребус Задание на полях

Что узнали. Чему научились

1 2 3 4 5 6 7 8 9 10 11 12 Задание на полях Странички для любознательных Задачи-расчёты-Странички для любознательных 13 14 15 16 17 18 19 20 21 Цепочка 22 23 24 25 26 27 Тест

325 326 327 328 329 330 331 332 Проверь себя и оцени свои успехи 333 334 335 336 337 338 339 Задание Проверь себя и оцени свои успехи 340 341 342 343 344 345 346 347 348 349 Ребус 350 351 352 353 354 355 356 Проверь себя и оцени свои успехи Ребус Задание 357 358 359 360 361 362 Проверь себя и оцени свои успехи 363 364 365 366 367 368 369 370 371 Проверь себя и оцени свои успехи 372 373 374 375 Проверь себя и оцени свои успехи Задание на полях 376 377 378 379 Проверь себя и оцени свои успехи 380 381 382 383 384 385 386 387 Проверь себя и оцени свои успехи Ребус 388 389 390 391 392 393 394 Проверь себя и оцени свои успехи Задание 395 396 397 398 399 400 401 402 403 Проверь себя и оцени свои успехи Ребусы 404 405 406 407 408 409 410 Проверь себя и оцени свои успехи Ребус 411 412 413 414 415 416 417 Проверь себя и оцени свои успехи Задание на полях 418 419 420 421 422 423 424 425 Проверь себя и оцени свои успехи 426 427 428 429 430 431 432 433 434 435 436

Что узнали. Чему научились

1 2 3 4 5 6 7 8 9 10 11 Ребус 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 Ребус 44 45 46 47 48 49 50 Тест Тексты для контрольных работ

Часть 2

1 2 3 4 5 6 7 Ребус 8 9 10 11 12 13 Проверь себя и оцени свои успехи Ребус 14 15 16 17 18 19 20 Проверь себя и оцени свои успехи 21 22 23 24 25 26 Проверь себя и оцени свои успехи 27 28 29 30 31 32 33 34 Странички для любознательных 35 36 37 38 39 Проверь себя и оцени свои успехи Ребус 40 41 42 43 44 45 46 Проверь себя и оцени свои успехи Задание 47 48 49 50 51 52 53 Проверь себя и оцени свои успехи Ребус 54 55 56 57 58 59 60 Проверь себя и оцени свои успехи Цепочка 61 62 63 64 Проверь себя и оцени свои успехи Цепочка 65 66 67 68 69 70 71 72 Проверь себя и оцени свои успехи Задание на полях Странички для любознательных

Что узнали. Чему научились

1 2 3 4 5 6 7 8 9 Ребус Задание на полях 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 Задание на полях Странички для любознательных

73 74 75 76 77 Проверь себя и оцени свои успехи Ребус 78 79 80 81 82 83 84 85 86 87 Проверь себя и оцени свои успехи Ребус 88 89 90 91 92 93 94 Проверь себя и оцени свои успехи Цепочка 95 96 97 98 99 100 101 Проверь себя и оцени свои успехи Задание на полях 102 103 104 105 106 107 108 Проверь себя и оцени свои успехи Ребус 109 110 111 112 113 Проверь себя и оцени свои успехи 114 115 116 117 118 119 Проверь себя и оцени свои успехи Задание на полях Ребус 120 121 122 123 124 Проверь себя и оцени свои успехи Магический квадрат 125 126 127 128 Проверь себя и оцени свои успехи Ребус 129 130 131 132 133 134 135 136 137 138 Тест Наши проекты Магический квадрат

Что узнали. Чему научились

1 2 3 4 5 6 7 8 9 10 11 12 Задание на полях 13 14 15 16 17 18 19 20 21 Ребус Задание на полях 22 23 24 25 26 27 28 Магический квадрат Ребус

139 140 141 142 143 144 145 Проверь себя и оцени свои успехи Цепочка 146 147 148 149 150 151 152 153 154 155 Проверь себя и оцени свои успехи 157 158 159 160 Проверь себя и оцени свои успехи Задание на полях 161 162 163 164 165 166 167 168 Проверь себя и оцени свои успехи 169 170 171 172 173 Проверь себя и оцени свои успехи Ребус 174 175 176 177 178 179 180 181 Проверь себя и оцени свои успехи Ребус 182 183 184 Проверь себя и оцени свои успехи Задание на полях Ребус 185 186 187 188 189 190 Проверь себя и оцени свои успехи Задание на полях 191 192 193 194 195 196 197 198 199 200 201 202 203 204 Проверь себя и оцени свои успехи Задания на полях Странички для любознательных

Что узнали. Чему научились

1 2 3 4 5 6 7 8 9 10 11 Занимательная рамка Ребус 12 13 14 15 17 18 19 20 21 Задание на полях 22 23 24 25

206 207 208 209 210 Проверь себя и оцени свои успехи Цепочка 211 212 213 214 215 216 217 218 Проверь себя и оцени свои успехи Магический квадрат 219 220 221 222 223 224 225 Проверь себя и оцени свои успехи Ребус 226 227 228 229 230 231 Проверь себя и оцени свои успехи Цепочка Ребус 232 233 234 235 236 237 Проверь себя и оцени свои успехи Задание на полях 238 239 240 241 242 243 244 245 246 Проверь себя и оцени свои успехи Ребус Задание на полях 247 248 249 250 251 252 253 254 255 Проверь себя и оцени свои успехи Задание на полях 256 257 258 259 260 261 262 263 264 Проверь себя и оцени свои успехи Ребус 265 266 267 268 269 Проверь себя и оцени свои успехи Задание на полях 270 271 272 273 274 275 276 277 278

Что узнали. Чему научились

1 2 3 4 5 6
7 8 9 10 Странички для любознательных Занимательные рамки Ребус 11 12 13 14 15 16 17 Ребус 18 19 20 21 22 23 24 25

279 280 281 282 283 Проверь себя и оцени свои успехи Лабиринт 284 285 286 287 288 289 Проверь себя и оцени свои успехи Цепочка 290 291 292 293 294 295 296 297 298 Проверь себя и оцени свои успехи Цепочка 299 300 301 302 303 304 305 306 307 Проверь себя и оцени свои успехи Цепочка Задание на полях 308 309 310 311 312 313 314 315 Цепочка Ребус 316 317 318 319 320 321 322 Проверь себя и оцени свои успехи Задание на полях Странички для любознательных

Что узнали. Чему научились

1 2 3 4 5 6 7 8 9 Ребус 10 11 12 13 14 15 16 17 Задание на полях Ребус 18 19 20 21 22 23 24 25 26 27 Занимательная рамка 28 29 30 31 32 33 34 35 36 37

Итоговое повторение всего изученного

Нумерация

1 2 3 4 5 6 7 8 9 Задание на полях 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29

Выражения и уравнения

1 2 3 4 5 6 7 8

Сложение и вычитание

1 2 3 4 5 6 7 Ребусы 8 9 10 11 12 13 14 15 16 Магический квадрат

Умножение и деление

1 2 3 4 5 6 7 8 9 Ребус 10 11 12 13 14 15 16 17 18 19

Правила о порядке выполнения действий

1 2 3 4 5 6 7

Величины

1 2 3 4 5 6 Ребус Задание на полях

Геометрические фигуры

1 2 3 4 5 6 7 8 9 10 11 12

Задачи

1 2 3 4 5 6 7 8 Ребус 9 10 11 12 13 14 15 16 Ребус Магический квадрат 17 18 19 20 21 22 23 Ребус 24 25 26 27 28 29 30 31 32 Ребус 33 34 35 36 37 38 39 Задание на полях

Странички для любознательных

Материал для расширения и углубления знаний

Доли Единицы площади Масштаб. План Диагонали прям-ка Куб Прям. параллелеп. Пирамида Цилиндр Шар

Тексты для контрольных работ

Задания C4 по информатике
1. Дан список результатов сдачи экзамена учащимися школ некоторого района, с
указанием фамилии и имени учащегося, номера школы и итогового балла.
Напишите эффективную по времени работы и по используемой памяти
программу (укажите используемую версию языка программирования, например,
Borland Pascal 7.0), которая определяет номера школ, имеющих наибольший
средний балл, показанный выпускниками данной школы на экзамене. На вход
программе в первой сроке подается количество учащихся во всех школах района
N. В каждой из последующих N строк находится информация в следующем
формате: <Фамилия> <Имя> <Номер школы> <Балл>
где <Фамилия> – строка, состоящая не более, чем из 20 символов без
пробелов,
<Имя> – строка, состоящая не более, чем из 20 символов без пробелов,
<Номер школы> – число от 1 до 99,
<Балл> — число от 0 до 100.
Порядок следования строк – произвольный.
Пример входных данных:
6
Иванов Сергей 7 70
Сергеев Петр 3 65
Петров Кирилл 7 68
Кириллов Егор 3 75
Егоров Николай 7 71
Николаев Иван 19 70
Программа должна вывести номера школ, имеющих наибольший
средний балл, показанный на экзамене выпускниками этой школы.
Пример вывода для приведенного выше примера ввода:
3
19
При выполнении задания следует учитывать, что значение N может
быть велико (до 10 000).
Содержание верного ответа и указания по оцениванию
(допускаются иные формулировки ответа, не искажающие его
смысла)
Создадим два массива с индексами от 1 до 99, соответствующих номерам школ и
будем хранить в этих массивах количество выпускников из этой школы, сдававших
экзамен и суммарный балл выпускников этой школы. Программа читает все
входные данные один раз. После считывания фамилии, имени, номера школы и
балла считанное значение прибавляется к суммарному баллу для данной школы, а
количество выпускников из этой школы, сдававших экзамен, увеличиваем на 1.

После окончания считывания данных проходим циклом от 1 до 99 по всем школам и
определяем максимальный средний балл по всем школам. Затем во втором цикле
выводим номера школ, средний балл в которых равен максимальному. Ниже
приведены примеры решения задания на языках Паскаль и C++. Допускаются
решения, записанные на других языках программирования. При оценивании
решений на других языках программирования необходимо учитывать особенности
этих языков программирования. Решение на языке Паскаль
var
SchoolSum, SchoolCount: array[1..99] of integer;
i, N, School, Ball, MaxI: integer;
Max: extended;
c: char;
begin
for i:=1 to 99 do
begin
SchoolSum[i] := 0;
SchoolCount[i] := 0
end;
Readln(N);
for i:=1 to N do
begin
repeat
Read(c)
until c=’ ‘;
repeat
Read(c)
until c=’ ‘;
Readln(School, Ball);
SchoolSum[School] := SchoolSum[School] + Ball;
SchoolCount[School] := SchoolCount[School] + 1;
end;
Max:=-1;
for i:=1 to 99 do
if (SchoolCount[i] > 0) and (SchoolSum[i] / SchoolCount[i]
> Max)
then
begin
Max := SchoolSum[i] / SchoolCount[i];
MaxI := i
end;
for i:=1 to 99 do
if (SchoolCount[i]>0) and (SchoolSum[i]*SchoolCount[MaxI]=
SchoolSum[MaxI]*SchoolCount[i])
then

WriteLn(i)
end.
Решение на языке C++
#include<iostream>
#include<string>
using namespace std;
int main()
{
int SchoolSum[100];
int SchoolCount[100];
int i, N, School, Ball, MaxI;
double Max;
string Name;
for (i = 1; i <= 99; ++i)
SchoolSum[i] = SchoolCount[i] = 0;
cin >> N;
for (i = 0; i < N; ++i)
{
cin >> Name >> Name >> School >> Ball;
SchoolSum[School] += Ball;
SchoolCount[School]++;
}
Max=-1;
for(i=1;i<=99;++i)
if (SchoolCount[i]>0 && (double)SchoolSum[i]/SchoolCount
[i]>Max)
{
Max=(double)SchoolSum[i]/SchoolCount[i];
MaxI=i;
}
for(i=1;i<=99;++i)
if (SchoolCount[i]>0 && SchoolSum[i]*SchoolCount[MaxI]=
SchoolSum[MaxI]*SchoolCount[i])
cout << i << endl;
return 0;
}

Указания по оцениванию Балл
Программа работает верно для любых входных данных
произвольного размера и находит ответ, не сохраняя входные данные
в массиве, размер которого соответствует числу N (количество
человек в списке). Программа просматривает входные данные один
раз, сохраняя только информацию о cуммарном балле и количестве
выпускников в каждой школе. Допускается наличие в тексте
программы одной синтаксической ошибки: пропущен или неверно
указан знак пунктуации, неверно написано или пропущено
зарезервированное слово языка программирования, не описана или
неверно описана переменная, применяется операция, недопустимая
для соответствующего типа данных (если одна и та же ошибка
встречается несколько раз, то это считается за одну ошибку).
4
Программа работает верно, но входные данные запоминаются в
массиве, размер которого не меньше N или входные данные
считываются несколько раз. Допускается наличие от одной до трех
синтаксических ошибок. Возможно, в принципиально верно
организованном вводе данных есть одна ошибка. Три балла также
выставляется, если в эффективной программе, удовлетворяющей
критериям выставления 4 баллов, есть одна алгоритмическая ошибка
(например, отсутствует вывод результата при правильном его
нахождении).
3
Программа работает в целом верно, эффективно или нет, но, в
реализации алгоритма содержатся до двух ошибок (неверная
инициализация переменных, в частности значения максимума, выход
за границу массива, перевод символов в числа, используется знак “<”
вместо “<=”, “or” вместо “and” и т.п.). Возможно, некорректно
организовано считывание входных данных. Допускается наличие от
одной до пяти синтаксических ошибок, описанных выше.
2
Программа, возможно, неверно работает при некоторых входных
данных, например, выдает правильный ответ только в том случае,
если школа с максимальным средним баллом только одна. Возможно,
неверно организовано считывание данных и отсутствует вывод
результата. Допускается до 4 различных ошибок в реализации
алгоритма, в том числе описанных в критериях присвоения двух
баллов. Допускается наличие от одной до семи синтаксических
ошибок, описанных выше.
1
Задание не выполнено или выполнено неверно 0

2. Дан список результатов сдачи экзамена учащимися школ некоторого района, с
указанием фамилии и имени учащегося, номера школы и итогового балла.
Напишите эффективную по времени работы и по используемой памяти
программу (укажите используемую версию языка программирования, например,
Borland Pascal 7.0), которая определяет номера школ, имеющих наименьший
средний балл, показанный выпускниками данной школы на экзамене. На вход
программе в первой сроке подается количество учащихся во всех школах района
N. В каждой из последующих N строк находится информация в следующем
формате:
<Фамилия> <Имя> <Номер школы> <Балл>
где <Фамилия> – строка, состоящая не более, чем из 20 символов без
пробелов,
<Имя> – строка, состоящая не более, чем из 20 символов без
пробелов,
<Номер школы> – число от 1 до 99,
<Балл> — число от 0 до 100.
Порядок следования строк – произвольный.
Пример входных данных:
6
Иванов Сергей 7 70
Сергеев Петр 3 68
Петров Кирилл 7 75
Кириллов Егор 3 72
Егоров Николай 7 72
Николаев Иван 19 70
Программа должна вывести номера школ, имеющих наименьший
средний балл, показанный на экзамене выпускниками этой школы.
Пример вывода для приведенного выше примера ввода:
3 19
При выполнении задания следует учитывать, что значение N может
быть велико (до 10 000).
Содержание верного ответа и указания по оцениванию
(допускаются иные формулировки ответа, не искажающие его
смысла)
Создадим два массива с индексами от 1 до 99, соответствующих номерам школ и
будем хранить в этих массивах количество выпускников из этой школы, сдававших
экзамен и суммарный балл выпускников этой школы. Программа читает все
входные данные один раз. После считывания фамилии, имени, номера школы и
балла считанное значение прибавляется к суммарному баллу для данной школы, а
количество выпускников из этой школы, сдававших экзамен, увеличиваем на 1.
После окончания считывания данных проходим циклом от 1 до 99 по всем школам и
определяем минимальный средний балл по всем школам. Затем во втором цикле 

выводим номера школ, средний балл в которых равен минимальному. Ниже
приведены примеры решения задания на языках Паскаль и C++. Допускаются
решения, записанные на других языках программирования. При оценивании
решений на других языках программирования необходимо учитывать особенности
этих языков программирования. Решение на языке Паскаль
var
SchoolSum, SchoolCount: array[1..99] of integer;
i, N, School, Ball, MinI: integer;
Min: extended;
c: char;
begin
for i:=1 to 99 do
begin
SchoolSum[i] := 0;
SchoolCount[i] := 0
end;
Readln(N);
for i:=1 to N do
begin
repeat
Read(c)
until c=’ ‘;
repeat
Read(c)
until c=’ ‘;
Readln(School, Ball);
SchoolSum[School] := SchoolSum[School] + Ball;
SchoolCount[School] := SchoolCount[School] + 1;
end;
Min:=101;
for i:=1 to 99 do
if (SchoolCount[i]>0) and (SchoolSum[i] / SchoolCount[i] <
Min)
then
begin
Min := SchoolSum[i] / SchoolCount[i];
MinI := i
end;
for i:=1 to 99 do
if (SchoolCount[i]>0) and (SchoolSum[i]*SchoolCount[MinI]=
SchoolSum[MinI]*SchoolCount[i])
then
WriteLn(i)
end.

Решение на языке C++
#include<iostream>
#include<string>
using namespace std;
int main()
{
int SchoolSum[100];
int SchoolCount[100];
int i, N, School, Ball, MinI;
double Min;
string Name;
for (i = 1; i <= 99; ++i)
SchoolSum[i] = SchoolCount[i] = 0;
cin >> N;
for (i = 0; i < N; ++i)
{
cin >> Name >> Name >> School >> Ball;
SchoolSum[School] += Ball;
SchoolCount[School]++;
}
Min=101;
for(i=1;i<=99;++i)
if (SchoolCount[i]>0 && (double)SchoolSum[i]/SchoolCount
[i]<Min)
{
Min=(double)SchoolSum[i]/SchoolCount[i];
MinI=i;
}
for(i=1;i<=99;++i)
if (SchoolCount[i]>0 && SchoolSum[i]*SchoolCount[MinI]==
SchoolSum[MinI]*SchoolCount[i])
cout << i << endl;
return 0;
}

Указания по оцениванию Балл
Программа работает верно для любых входных данных
произвольного размера и находит ответ, не сохраняя входные данные
в массиве, размер которого соответствует числу N (количество
человек в списке). Программа просматривает входные данные один
раз, сохраняя только информацию о cуммарном балле и количестве
выпускников в каждой школе. Допускается наличие в тексте
программы одной синтаксической ошибки: пропущен или неверно
указан знак пунктуации, неверно написано или пропущено
зарезервированное слово языка программирования, не описана или
неверно описана переменная, применяется операция, недопустимая
для соответствующего типа данных (если одна и та же ошибка
встречается несколько раз, то это считается за одну ошибку).
4
Программа работает верно, но входные данные запоминаются в
массиве, размер которого не меньше N или входные данные
считываются несколько раз. Допускается наличие от одной до трех
синтаксических ошибок. Возможно, в принципиально верно
организованном вводе данных есть одна ошибка. Три балла также
выставляется, если в эффективной программе, удовлетворяющей
критериям выставления 4 баллов, есть одна алгоритмическая ошибка
(например, отсутствует вывод результата при правильном его
нахождении).
3
Программа работает в целом верно, эффективно или нет, но, в
реализации алгоритма содержатся до двух ошибок (неверная
инициализация переменных, в частности значения максимума, выход
за границу массива, перевод символов в числа, используется знак “<”
вместо “<=”, “or” вместо “and” и т.п.). Возможно, некорректно
организовано считывание входных данных. Допускается наличие от
одной до пяти синтаксических ошибок, описанных выше.
2
Программа, возможно, неверно работает при некоторых входных
данных, например, выдает правильный ответ только в том случае,
если школа с максимальным средним баллом только одна. Возможно,
неверно организовано считывание данных и отсутствует вывод
результата. Допускается до 4 различных ошибок в реализации
алгоритма, в том числе описанных в критериях присвоения двух
баллов. Допускается наличие от одной до семи синтаксических
ошибок, описанных выше.
1
Задание не выполнено или выполнено неверно 0

3. Имеется список людей с указанием их фамилии, имени и даты рождения.
Напишите эффективную по времени работы и по используемой памяти
программу (укажите используемую версию языка программирования, например,
Borland Pascal 7.0), которая будет определять самого старшего человека из этого
списка и выводить его фамилию, имя и дату рождения, а если имеется несколько
самых старших людей с одинаковой датой рождения, то определять их
количество. На вход программе в первой строке подается количество людей в
списке N. В каждой из последующих N строк находится информация в следующем
формате: <Фамилия> <Имя> <Дата рождения>
где <Фамилия> – строка, состоящая не более, чем из 20 символов без
пробелов,
<Имя> – строка, состоящая не более, чем из 20 символов без
пробелов,
<Дата рождения> – стока, имеющая вид ДД.ММ.ГГГГ, где ДД –
двузначное число от 01 до 31, ММ – двузначное число от 01 до 12,
ГГГГ – четырехзначное число от 1800 до 2100.
Пример входной строки:
Иванов Сергей 27.03.1993
Программа должна вывести фамилию и имя самого старшего
человека в списке.
Пример выходных данных:
Иванов Сергей
Если таких людей, несколько, то программа должна вывести их
количество. Пример вывода в этом случае: 3
Содержание верного ответа и указания по оцениванию (допускаются иные
формулировки ответа, не искажающие его смысла)
Программа читает все входные данные один раз, не запоминая их в массиве.
Во время чтения данных определяется дата рождения каждого человека,
которая сравнивается с наименьшей из известных дат рождения среди всех
уже просмотренных людей из списка. Также запоминается количество людей,
имеющих наименьшую дату рождения, фамилия и имя человека, имеющего
наименьшую дату рождения.
Баллы начисляются только за программу, которая решает задачу хотя бы для
одного частного случая (например, когда только один человек имеет
наименьшую дату рождения).
Ниже приведены примеры решения задания на языках Паскаль и C++.
Допускаются решения, записанные на других языках программирования. При
оценивании решений на других языках программирования необходимо
учитывать особенности этих языков программирования.

Решение на языке Паскаль
Var
N, i, Day, Month, Year, MinDay, MinMonth, MinYear, MinCount,
Code: integer;
Name, MinName: string;
Begin
MinYear:=9999;
,Считываем количество людей-
ReadLn(N);
for i:=1 to N do
begin
,Считываем данные об одном человеке-
ReadLn(Name);
,Извлекаем из строки значения дня, месяца, года рождения-
val(Copy(Name,Length(Name)-9,2),Day,Code);
val(Copy(Name,Length(Name)-6,2),Month,Code);
val(Copy(Name,Length(Name)-3,4),Year,Code);
,Если дата рождения совпадает с наименьшей известной
датой, то увеличиваем счетчик числа людей, имеющих минимальную
дату рождения}
if (Year=MinYear) and (Month=MinMonth) and (Day=MinDay)
then
MinCount:=MinCount+1;
,Если дата рождения меньше минимально известной, то
сохраняем его дату рождения, как минимальное, счетчик числа
людей, имеющих такую дату рождения, устанавливаем в 1, также
запоминаем имя человека}
if (Year<MinYear) or (Year=MinYear) and (Month<MinMonth)
or (Year=MinYear) and (Month=MinMonth) and (Day<MinDay)
then
begin
MinYear:=Year;
MinMonth:=Month;
MinDay:=Day;
MinCount:=1;
MinName:=Copy(Name,1,length(Name)-11)
end
end;
,Если счетчик числа людей, имеющих минимальную дату рождения
больше 1, то выводим значение счетчика, иначе выводим имя
человека}
if MinCount>1
then
WriteLn(MinCount)

Else
WriteLn(MinName)
end.
Решение на языке C++
#include<iostream>
using namespace std;
int main()
{
int n, i, day, month, year, minday, minmonth, minyear,
mincount;
string name, minname;
cin >> n;
getline(cin, name);
minyear=9999;
for(i=0;i<n;++i)
{
getline(cin, name);
day=(name[name.length()-10]-‘0’)*10 + name[name.length()-
9]-‘0’;
month=(name[name.length()-7]-‘0’)*10 + name[name.length()-
9]-‘6’;
year=(((name[name.length()-4]-‘0’)*10 + name[name.length
()-3]-‘0’) * 10 + name[name.length()-2]-‘0’)*10 + name
[name.length()-1]-‘0’;
if (year==minyear && month==minmonth && day==minday)
++mincount;
if (year<minyear || year==minyear && month<minmonth ||
year==minyear && month==minmonth && day<minday)
{
minyear=year;
minmonth=month;
minday=day;
mincount=1;
name.resize(name.length()-11);
minname=name;
}
}
if(mincount>1)
cout<<mincount<<endl;
else
cout<<minname<<endl;
return 0;
}

Указания по оцениванию Балл
Программа работает верно для любых входных данных
произвольного размера и находит ответ, не сохраняя входные данные
в массиве, размер которого соответствует числу N (количество
человек в списке). Программа просматривает входные данные один
раз, сохраняя только информацию о cуммарном балле и количестве
выпускников в каждой школе. Допускается наличие в тексте
программы одной синтаксической ошибки: пропущен или неверно
указан знак пунктуации, неверно написано или пропущено
зарезервированное слово языка программирования, не описана или
неверно описана переменная, применяется операция, недопустимая
для соответствующего типа данных (если одна и та же ошибка
встречается несколько раз, то это считается за одну ошибку).
4
Программа работает верно, но входные данные запоминаются в
массиве, размер которого не меньше N или входные данные
считываются несколько раз. Допускается наличие от одной до трех
синтаксических ошибок. Возможно, в принципиально верно
организованном вводе данных есть одна ошибка. Три балла также
выставляется, если в эффективной программе, удовлетворяющей
критериям выставления 4 баллов, есть одна алгоритмическая ошибка
(например, отсутствует вывод результата при правильном его
нахождении).
3
Программа работает в целом верно, эффективно или нет, но, в
реализации алгоритма содержатся до двух ошибок (неверная
инициализация переменных, в частности значения максимума, выход
за границу массива, перевод символов в числа, используется знак “<”
вместо “<=”, “or” вместо “and” и т.п.). Возможно, некорректно
организовано считывание входных данных. Допускается наличие от
одной до пяти синтаксических ошибок, описанных выше.
2
Программа, возможно, неверно работает при некоторых входных
данных, например, выдает правильный ответ только в том случае,
если школа с максимальным средним баллом только одна. Возможно,
неверно организовано считывание данных и отсутствует вывод
результата. Допускается до 4 различных ошибок в реализации
алгоритма, в том числе описанных в критериях присвоения двух
баллов. Допускается наличие от одной до семи синтаксических
ошибок, описанных выше.
1
Задание не выполнено или выполнено неверно 0

4. Имеется список результатов голосования избирателей за несколько партий, в
виде списка названий данных партий. На вход программе в первой строке
подается количество избирателей в списке N. В каждой из последующих N строк
записано название партии, за которую проголосовал данный избиратель, в виде
текстовой строки. Длина строки не превосходит 50 символов, название может
содержать буквы, цифры, пробелы и прочие символы.
Пример входных данных:
6
Party one
Party two
Party three
Party three
Party two
Party three
Программа должна вывести список всех партий, встречающихся в
исходном списке, в порядке убывания количества голосов, отданных
за эту партию. При этом название каждой партии должно быть
выведено ровно один раз, вне зависимости от того, сколько голосов
было отдано за данную партию.
Пример выходных данных для приведенного выше примера входных
данных:
Party three
Party two
Party one
При этом следует учитывать, что количество голосов избирателей в
исходном списке может быть велико (свыше 1000), а количество
различных партий в этом списке не превосходит 10.
Содержание верного ответа и указания по оцениванию
(допускаются иные формулировки ответа, не искажающие его смысла)
Программа читает все входные данные один раз, не запоминая все входные данные
в массиве, размер которого равен N, а составляя только список имеющихся
политических партий и количества голосов, отданных за каждую из них. Во время
чтения данных просматривается список ранее сохраненных партий, если данная
партия уже есть в списке, то количество голосов, отданных за эту партию,
увеличивается на 1, иначе партия добавляется в список известных партий. После
окончания ввода производится сортировка массивов партий и количества голосов,
отданных за них в порядке убывания количества голосов, затем выводится список
партий. Баллы начисляются только за программу, которая решает задачу хотя бы
для одного частного случая.
Ниже приведены примеры решения задания на языках Паскаль и C++. Допускаются
решения, записанные на других языках программирования. При оценивании 

решений на других языках программирования необходимо учитывать особенности
этих языков программирования.
Решение на языке Паскаль
Var
n, NumParties, i, j, t: integer;
Count:array[1..10] of integer;
s: string;
Names: array[1..10] of string;
Begin
,Общее число партий в списке-
NumParties:=0;
,Считываем количество избирателей-
ReadLn(N);
for i:=1 to N do
begin
,Считываем название партии, за которую проголосовал
избиратель-
ReadLn(S);
,Осуществляем поиск считанного названия в списке всех известных партий-
j:=1;
while (j<=NumParties) and (s<>Names[j])
do
j:=j+1;
,Если партия найдена в списке-
if j<=NumParties
then
,Увеличиваем счетчик числа голосов, отданных за эту
партию}
Count[j]:=Count[j]+1
else
begin
,Иначе добавляем партию в конец списка, увеличиваем
число партий на 1, устанавливаем счетчик голосов, отданных за
новую партию, в 1-
Names[j]:=s;
Count[j]:=1;
NumParties:=NumParties+1
end
end;
,Сортируем массивые Names и Count в порядке убывания
значений массива Count}
for i:=NumParties downto 2 do
© МИОО, 2009 г.
for j:=2 to i do
if Count[j-1]<Count[j]
then
begin

t:=Count[j];
Count[j]:=Count[j-1];
Count[j-1]:=t;
s:=Names[j];
Names[j]:=Names[j-1];
Names[j-1]:=s;
end;
,Выводим содержимое массива Countfor
i:=1 to NumParties do
WriteLn(Names[i])
end.
Решение на языке C++
#include<iostream>
using namespace std;
int main()
{
int n, Count[10], NumParties=0, i, j, t;
string Names[10], s;
cin>>n;
getline(cin,s);
for(i=0;i<n;++i)
{
getline(cin,s);
j=0;
while(j<NumParties && s!=Names[j])
++j;
if(j<NumParties)
++Count[j];
else
{
Names[j]=s;
Count[j]=1;
++NumParties;
}
}
for (i=NumParties-1;i>=1;—i)
for (j=1;j<=i;++j)
if (Count[j-1]<Count[j])
{
t=Count[j];
Count[j]=Count[j-1];
Count[j-1]=t;
s=Names[j];
Names[j]=Names[j-1];
Names[j-1]=s;
}
for(i=0;i<NumParties;++i)

cout<<Names[i]<<endl;
}
Указания по оцениванию Балл
Программа работает верно для любых входных данных произвольного
размера и находит ответ, не сохраняя входные данные в массиве,
размер которого соответствует числу N (количество человек в списке).
Программа просматривает входные данные один раз, сохраняя только
информацию о cуммарном балле и количестве выпускников в каждой
школе. Допускается наличие в тексте программы одной синтаксической
ошибки: пропущен или неверно указан знак пунктуации, неверно
написано или пропущено зарезервированное слово языка
программирования, не описана или неверно описана переменная,
применяется операция, недопустимая для соответствующего типа
данных (если одна и та же ошибка встречается несколько раз, то это
считается за одну ошибку).
4
Программа работает верно, но все входные данные запоминаются в
массиве или входные данные считываются несколько раз.
Допускается наличие от одной до трех синтаксических ошибок. Три
балла также выставляется, если в эффективной программе,
удовлетворяющей критериям выставления 4 баллов, есть одна
ошибка, например, использование неверной границы в алгоритме
сортировке, выход за границы массива, используется знак “<” вместо
“<=” и т.д.
3
Программа работает в целом верно, эффективно или нет, но, в
реализации алгоритма содержатся до двух ошибок (неверная
инициализация переменных, в частности значения минимума, выход
за границу массива, используется знак “<” вместо “<=”, “or” вместо
“and” и т.п.). Возможно, некорректно организовано считывание
входных данных. Допускается наличие от одной до пяти синтаксических
ошибок, описанных выше.
2
Программа, возможно, неверно работает при некоторых входных
данных, например, выдает правильный ответ только в том случае,
если школа с максимальным средним баллом только одна. Возможно,
неверно организовано считывание данных и отсутствует вывод
результата. Допускается до 4 различных ошибок в реализации
алгоритма, в том числе описанных в критериях присвоения двух баллов.
Допускается наличие от одной до семи синтаксических ошибок,
описанных выше.
1
Задание не выполнено или выполнено неверно 0

5. Имеется список результатов голосования избирателей за несколько партий, в
виде списка названий данных партий. При этом некоторые голоса являются
недействительными, в этом случае вместо названия партии записан один символ
«.» (точка). Партия проходит в парламент, если за нее отдано не менее 7% от
общего числа действительных голосов (то есть от количества строк в списке,
которые не равны «.»). На вход программе в первой строке подается количество
избирателей в списке N. В каждой из последующих N строк записано название
партии, за которую проголосовал данный избиратель, в виде текстовой строки
или один символ «.», если данный голос считается недействительным. Длина
строки не превосходит 50 символов, название может содержать буквы, цифры,
пробелы и прочие символы.
Пример входных данных:
Party one
Party two
Party one
Party one
Party two
Party two
.
Party three
Party one
Party one
Party two
Party one
Party two
Party two
Party one
Party two
Программа должна вывести список всех партий, прошедших в парламент, в
произвольном порядке. При этом название каждой партии должно быть выведено
ровно один раз, вне зависимости от того, сколько голосов было отдано за данную
партию.
Пример выходных данных для приведенного выше примера входных данных:
Party one
Party two
При этом следует учитывать, что количество голосов избирателей в исходном
списке может быть велико (свыше 1000), а количество различных партий в
этом списке не превосходит 10.

Содержание верного ответа и указания по оцениванию
(допускаются иные формулировки ответа, не искажающие его смысла)
Программа читает все входные данные один раз, не запоминая все входные данные
в
массиве, размер которого равен N, а составляя только список имеющихся
политических партий и количества голосов, отданных за каждую из них. Во время
чтения данных проверяется, не равна ли считанная строка «.». В этом случае
просматривается список ранее сохраненных партий, если данная партия уже есть в
списке, то количество голосов, отданных за эту партию, увеличивается на 1, иначе
партия добавляется в список известных партий. Также счетчик общего числа
действительных голосов увеличивается на 1. После окончания ввода
просматривается список всех партий и выводятся названия тех из них, за которые
отдано не менее 7% от общего числа голосов. Баллы начисляются только за
программу, которая решает задачу хотя бы для одного частного случая. Ниже
приведены примеры решения задания на языках Паскаль и C++.
Допускаются решения, записанные на других языках программирования. При
оценивании решений на других языках программирования необходимо учитывать
особенности этих языков программирования.
Решение на языке Паскаль
Var
n, NumParties, NumVotes, i, j: integer;
Count:array[1..10] of integer;
s: string;
Names: array[1..10] of string;
Begin
NumParties:=0;
NumVotes:=0;
{Считываем количество избирателей}
ReadLn(N);
for i:=1 to N do
begin
{Считываем название партии, за которую проголосовал избиратель}
ReadLn(S);
if S<>’.’ then
begin
NumVotes:=NumVotes+1;
{Осуществляем поиск названия в списке известных партий}
j:=1;
while (j<=NumParties) and (s<>Names[j])
do
j:=j+1;
{Если партия найдена в списке}
if j<=NumParties
then
{Увеличиваем счетчик числа голосов, отданных за эту партию}

Count[j]:=Count[j]+1
else
begin
{Иначе добавляем партию в конец списка,
увеличиваем число партий на 1,
устанавливаем счетчик голосов,
отданных за новую партию, в 1}
Names[j]:=s;
Count[j]:=1;
NumParties:=NumParties+1
end
end
end;
{Проходим по списку партий и выводим только те,
за которые отдано не менее 7% голосов}
for i:=1 to NumParties do
if Count[i]*100>=NumVotes*7 then
WriteLn(Names[i])
end.
Решение на языке C++
#include<iostream>
using namespace std;
int main()
{
int n, Count[10], NumParties=0, NumVotes=0, i, j;
string Names[10], s;
cin>>n;
getline(cin,s);
for(i=0;i<n;++i)
{
getline(cin,s);
if(s!=».»)
{
NumVotes++;
j=0;
while(j<NumParties && s!=Names[j])
++j;
if(j<NumParties)
++Count[j];
else
{
Names[j]=s;
Count[j]=1;
++NumParties;
}
}
}

for(i=0;i<NumParties;++i)
if(Count[i]*100>=NumVotes*7)
cout<<Names[i]<<endl;
}
Указания по оцениванию Балл
Программа работает верно для любых входных данных
произвольного размера и находит ответ, не сохраняя входные данные
в массиве, размер которого соответствует числу N (количество
человек в списке). Программа просматривает входные данные один
раз, сохраняя только информацию о cуммарном балле и количестве
выпускников в каждой школе. Допускается наличие в тексте
программы одной синтаксической ошибки: пропущен или неверно
указан знак пунктуации, неверно написано или пропущено
зарезервированное слово языка программирования, не описана или
неверно описана переменная, применяется операция, недопустимая
для соответствующего типа данных (если одна и та же ошибка
встречается несколько раз, то это считается за одну ошибку).
4
Программа работает верно, но все входные данные запоминаются в
массиве или входные данные считываются несколько раз.
Допускается наличие от одной до трех синтаксических ошибок. Три
балла также выставляется, если в эффективной программе,
удовлетворяющей критериям выставления 4 баллов, есть одна
ошибка, например, использование неверной границы в алгоритме
сортировке, выход за границы массива, используется знак “<” вместо
“<=” и т.д.
3
Программа работает в целом верно, эффективно или нет, но, в
реализации алгоритма содержатся до двух ошибок (неверная
инициализация переменных, в частности значения минимума, выход
за границу массива, используется знак “<” вместо “<=”, “or” вместо
“and” и т.п.). Возможно, некорректно организовано считывание
входных данных. Допускается наличие от одной до пяти
синтаксических ошибок, описанных выше.
2
Программа, возможно, неверно работает при некоторых входных
данных, например, выдает правильный ответ только в том случае,
если школа с максимальным средним баллом только одна. Возможно,
неверно организовано считывание данных и отсутствует вывод
результата. Допускается до 4 различных ошибок в реализации
алгоритма, в том числе описанных в критериях присвоения двух
баллов. Допускается наличие от одной до семи синтаксических
ошибок, описанных выше.
1
Задание не выполнено или выполнено неверно 0

6. Два игрока играют в следующую игру. На координатной плоскости стоит
фишка.
В начале игры фишка находится в точке с координатами (0,0). Игроки ходят по
очереди. Ход состоит в том, что игрок перемещает фишку из точки с
координатами (x, y) в одну из трех точек: (x + 2, y + 3), (x, y + 2), . Игра
заканчивается, как только расстояние по прямой от фишки до начала координат
станет более 9. Выигрывает игрок, который сделал последний ход. Кто
выигрывает при безошибочной игре – игрок, делающий первый ход, или игрок,
делающий второй ход? Каким должен быть первый ход выигрывающего игрока?
Ответ обоснуйте.
16
Party one
Party two
Party one
Party one
Party two
Party two
.
Party three
Party one
Party one
Party two
Party one
Party two
Party two
Party one
Party two
Программа должна вывести список всех партий, прошедших в парламент, в
произвольном порядке. При этом название каждой партии должно быть
выведено ровно один раз, вне зависимости от того, сколько голосов было
отдано за данную партию.
Пример выходных данных для приведенного выше примера входных данных:
Party one
Party two
При этом следует учитывать, что количество голосов избирателей в исходном
списке может быть велико (свыше 1000), а количество различных партий в
этом списке не превосходит 10.
Содержание верного ответа и указания по оцениванию
(допускаются иные формулировки ответа, не искажающие его смысла)
Программа читает все входные данные один раз, не запоминая все входные данные
в
массиве, размер которого равен N, а составляя только список имеющихся
политических партий и количества голосов, отданных за каждую из них. Во время

чтения данных проверяется, не равна ли считанная строка «.». В этом случае
просматривается список ранее сохраненных партий, если данная партия уже есть в
списке, то количество голосов, отданных за эту партию, увеличивается на 1, иначе
партия добавляется в список известных партий. Также счетчик общего числа
действительных голосов увеличивается на 1. После окончания ввода
просматривается список всех партий и выводятся названия тех из них, за которые
отдано не менее 7% от общего числа голосов.
Баллы начисляются только за программу, которая решает задачу хотя бы для одного
частного случая.
Ниже приведены примеры решения задания на языках Паскаль и C++.
Допускаются решения, записанные на других языках программирования. При
оценивании решений на других языках программирования необходимо учитывать
особенности этих языков программирования.
Решение на языке Паскаль
Var
n, NumParties, NumVotes, i, j: integer;
Count:array[1..10] of integer;
s: string;
Names: array[1..10] of string;
Begin
NumParties:=0;
NumVotes:=0;
,Считываем количество избирателей-
ReadLn(N);
for i:=1 to N do
begin
,Считываем название партии, за которую проголосовал избиратель-
ReadLn(S);
if S<>’.’ then
begin
NumVotes:=NumVotes+1;
,Осуществляем поиск названия в списке известных партий-
j:=1;
while (j<=NumParties) and (s<>Names[j])
do
j:=j+1;
,Если партия найдена в списке-
if j<=NumParties
then
,Увеличиваем счетчик числа голосов, отданных за эту партию-
Count[j]:=Count[j]+1
else
begin
,Иначе добавляем партию в конец списка,

увеличиваем число партий на 1,
устанавливаем счетчик голосов,
отданных за новую партию, в 1-
Names[j]:=s;
Count[j]:=1;
NumParties:=NumParties+1
end
end
end;
,Проходим по списку партий и выводим только те,
за которые отдано не менее 7% голосов-
for i:=1 to NumParties do
if Count[i]*100>=NumVotes*7 then
WriteLn(Names[i])
end.
Решение на языке C++
#include<iostream>
using namespace std;
int main()
{
int n, Count[10], NumParties=0, NumVotes=0, i, j;
string Names[10], s;
cin>>n;
getline(cin,s);
for(i=0;i<n;++i)
{
getline(cin,s);
if(s!=».»)
{
NumVotes++;
j=0;
while(j<NumParties && s!=Names[j])
++j;
if(j<NumParties)
++Count[j];
else
{
Names[j]=s;
Count[j]=1;
++NumParties;
}
}
}
for(i=0;i<NumParties;++i)

if(Count[i]*100>=NumVotes*7)
cout<<Names[i]<<endl;
}
Указания по оцениванию Балл
Программа работает верно для любых входных данных
произвольного размера и находит ответ, не сохраняя входные данные
в массиве, размер которого соответствует числу N (количество
человек в списке). Программа просматривает входные данные один
раз, сохраняя только информацию о cуммарном балле и количестве
выпускников в каждой школе. Допускается наличие в тексте
программы одной синтаксической ошибки: пропущен или неверно
указан знак пунктуации, неверно написано или пропущено
зарезервированное слово языка программирования, не описана или
неверно описана переменная, применяется операция, недопустимая
для соответствующего типа данных (если одна и та же ошибка
встречается несколько раз, то это считается за одну ошибку).
4
Программа работает верно, но все входные данные запоминаются в
массиве или входные данные считываются несколько раз.
Допускается наличие от одной до трех синтаксических ошибок. Три
балла также выставляется, если в эффективной программе,
удовлетворяющей критериям выставления 4 баллов, есть одна
ошибка, например, использование неверной границы в алгоритме
сортировке, выход за границы массива, используется знак “<” вместо
“<=” и т.д.
3
Программа работает в целом верно, эффективно или нет, но, в
реализации алгоритма содержатся до двух ошибок (неверная
инициализация переменных, в частности значения минимума, выход
за границу массива, используется знак “<” вместо “<=”, “or” вместо
“and” и т.п.). Возможно, некорректно организовано считывание
входных данных. Допускается наличие от одной до пяти
синтаксических ошибок, описанных выше.
2
Программа, возможно, неверно работает при некоторых входных
данных, например, выдает правильный ответ только в том случае,
если школа с максимальным средним баллом только одна. Возможно,
неверно организовано считывание данных и отсутствует вывод
результата. Допускается до 4 различных ошибок в реализации
алгоритма, в том числе описанных в критериях присвоения двух
баллов. Допускается наличие от одной до семи синтаксических
ошибок, описанных выше.
1
Задание не выполнено или выполнено неверно 0

7. Статья 83 закона «О выборах депутатов Государственной Думы Федерального
Собрания Российской Федерации» определяет следующий алгоритм
пропорционального распределения депутатских мандатов.
Сначала подсчитывается сумма голосов избирателей, поданных за каждую
партию и подсчитывается сумма голосов, поданных за все партии. Эта сумма
делится на 450 – количество распределяемых мандатов, получается величина,
называемая «первое избирательное частное». Далее каждая партия получает
столько мандатов в парламенте, чему равна целая часть от деления числа голосов
за данную партию на первое избирательное частное.
Если после этого сумма количества мандатов, отданных партиям, меньше 450, то
оставшиеся до 450 мандаты передаются по одному партиям, в порядке убывания
дробной части частного от деления числа голосов за данную партию на первое
избирательное частное. Если же для двух партий эти дробные части равны, то
преимущество отдается той партии, которая получила большее число голосов.
Напишите программу (укажите используемую версию языка программирования,
например, Borland Pascal 7.0), которая по количеству голосов, отданных за
каждую партию, будет определять количество мандатов, полученных этой
партией в парламенте.
На вход программе подается количество партий N, участвовавших в выборах,
N≤20. Далее идет N строчек, каждая строчка содержит название партии (строка
длиной не более 50 символов, возможно, содержащая пробелы), затем, через
пробел, количество голосов, полученных данной партией – число, не
превосходящее .
Пример входных данных:
3
Party One 100000
Party Two 200000
Party Three 400000
Программа должна вывести названия всех партий и количество голосов в
парламенте, полученных данной партией. Названия необходимо выводить в том
же порядке, в котором они шли во входных данных. Пример выходных данных
для данного примера входных данных:
Party One 64
Party Two 129
Party Three 257
Содержание верного ответа и указания по оцениванию
(допускаются иные формулировки ответа, не искажающие его смысла)
Создадим массивы, для хранения следующих данных о партиях:
1. Название партии Names – строкового типа
2. Количество голосов, полученных партиями Votes – целочисленного типа
3. Количество мандатов в парламенте, полученных партией Mandates –
целочисленного типа
4. Дробная часть от деления количества голосов на первое избирательное частное

FracPart – вещественного типа (этот массив необходим для второй части
распределения
голосов).
Программа считывает данные один раз, запоминая названия партии в массиве
Names, а
количество голосов, отданных за партию – в массиве Votes. Одновременно в
переменную
SumVotes считается общее число голосов.
Затем в цикле по всем партиям (индексная переменная i обозначает номер партии)
каждая партия получает количество мандатов, равное целой части от деления
Votes[i]
на (SumVotes/450). Данное число мандатов записывается в элемент массива
Mandates
[i], в массив FracPart[i] записывается дробная часть от указанного частного.
Одновременно в SumMandates записывается общее число распределенных между
партиями мандатов.
В следующем цикле пока величина SumMandates меньше 450, распределяется по
одному
дополнительному мандату между партиями. Для этого определяется партия, для
которой
наибольшая величиа FracPart, а если величины FracPart – одинаковые, то партия,
для
которой больше величина Votes. Номер этой партии записывается в переменную i.
Затем
значение Mandates[i] и SumMandates увеличивается на 1, а значение FracPart[i]
устанавливается в 0, чтобы эта партия выбывала из процедуры вторичного
распределения голосов.
Решение на языке Паскаль:
Const
NumMandates=450; ,Число место в парламенте-
Var
N, SumVotes, SumMandates, i, j: longint;
errcore: integer;
Names: array[1..20] of string; {Названия партий}
Votes: array[1..20] of longint; ,Число голосов, отданных за партию-
Mandates: array[1..20] of longint; {Число мест в парламенте}
FracPart: array*1..20+ of real; ,Дробная часть при определении числа
мест-
Begin
ReadLn(N); ,Считали число партий-
SumVotes:=0; ,Общее число голосов избирателей-
for i:=1 to N do
begin

ReadLn(Names*i+); ,Считали название партии и число голосов-
j:=length(Names[i]);
while Names[i][j]<>’ ‘ do j:=j-1; {Нашли последний пробел в
строке}
val(Copy(Names[i],j+1,10),Votes[i],errcode); {Выделили из строки
число голосов-
Names[i]:=Copy(Names[i],1,j-1); ,Выделили из строки название
партии-
SumVotes:=SumVotes+Votes*i+; ,Увеличили общее число голосов-
end;
SumMandates:=0; {Общее число мандатов}
for i:=1 to N do
begin
FracPart[i]:=Votes[i]/(SumVotes/NumMandates);
Mandates*i+:=trunc(FracPart*i+); ,Столько мандатов получила данная
партия}
SumMandates:=SumMandates+Mandates[i]; {Увеличиваем общее число
мандатов}
FracPart[i]:=frac(FracPart[i])
end;
while SumMandates < NumMandates do {Раздаем дополнительные мандаты}
begin__
i:=1;
for j:=2 to N do ,Выбираем партию с наибольшим значением FracPartif
(FracPart[j]>FracPart[i]) or (FracPart[j]=FracPart[i]) and
(Votes[j]>Votes[i])
then i:=j;
Mandates*i+:=Mandates*i++1; ,Выдаем ей дополнительный мандат-
SumMandates:=SumMandates+1; ,Увеличиваем общее число мандатов-
FracPart[i]:=0;
end;
for i:=1 to N do ,Выводим результаты распределения мандатов-
WriteLn(Names[i],’ ‘,Mandates[i])
end.
Решение на языке C++:
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int main()
{
const int NumMandates=450;
int N, SumVotes, SumMandates, i, j;
string Names[20];

int Votes[20];
int Mandates[20];
double FracPart[20];
cin>>N;
getline(cin,Names[0]);
SumVotes=0;
for(i=0;i<N;i++)
{
getline(cin,Names[i]);
j=Names[i].length()-1;
while(Names[i][j]!=’ ‘) j—;
sscanf(Names[i].c_str()+j,»%d»,&Votes[i]);
Names[i].resize(j-1);
SumVotes+=Votes[i];
}
SumMandates=0;
for(i=0;i<N;i++)
{
FracPart[i]=Votes[i]/((double)SumVotes/NumMandates);
Mandates[i]=trunc(FracPart[i]);
SumMandates=SumMandates+Mandates[i];
FracPart[i]-=trunc(FracPart[i]);
}
while (SumMandates < NumMandates)
{
i=0;
for(j=1;j<N;j++)
if (FracPart[j]>FracPart[i] || FracPart[j]==FracPart[i] &&
Votes[j]>Votes[i])
i=j;
Mandates[i]++;
SumMandates++;
FracPart[i]=0;
}
for(i=0;i<N;i++)
cout<<Names[i]<<» «<<Mandates[i]<<endl;
}

Указания по оцениванию Балл
Программа работает верно для любых входных данных
произвольного размера и находит ответ, не сохраняя входные данные
в массиве, размер которого соответствует числу N (количество
человек в списке). Программа просматривает входные данные один
раз, сохраняя только информацию о cуммарном балле и количестве
выпускников в каждой школе. Допускается наличие в тексте
программы одной синтаксической ошибки: пропущен или неверно
указан знак пунктуации, неверно написано или пропущено
зарезервированное слово языка программирования, не описана или
неверно описана переменная, применяется операция, недопустимая
для соответствующего типа данных (если одна и та же ошибка
встречается несколько раз, то это считается за одну ошибку).
4
Программа работает верно во всех случаях, но содержит одну ошибку
(например, не рассмотрена возможность равенства голосов при
вторичном распределении мандатов, или программа не выводит
результат, при верном его нахождении). Допускается наличие от одной
до трех синтаксических ошибок: Возможно, в принципиально верно
организованном вводе данных есть одна ошибка.
3
Программа работает в целом верно, но в реализации алгоритма
содержатся до двух ошибок (неверная инициализация переменных, в
частности значения максимума, выход за границу массива, перевод
символов в числа, используется знак “<” вместо “<=”, “or” вместо “and” и
т.п.). Помимо этого, возможно, некорректно организовано считывание
входных данных. Допускается наличие от одной до пяти синтаксических
ошибок, описанных выше.
2
Программа, возможно, неверно работает при некоторых входных
данных.
Возможно, неверно реализован (или полностью отсутствует) механизм
вторичного распределения мандатов). Допускается до 4 различных
ошибок в реализации алгоритма, в том числе описанных в критериях
присвоения двух баллов. Допускается наличие от одной до семи
синтаксических ошибок, описанных выше.
1
Задание не выполнено или выполнено неверно 0

ОГЭ 4.9 Определите длину кратчайшего пути между пунктами A и F

Между населёнными пунктами A, B, C, D, E, F построены дороги, протяжённость которых (в километрах) приведена в таблице. Определите длину кратчайшего пути между пунктами A и F. Передвигаться можно только по дорогам, протяжённость которых указана в таблице. СтатГрад Вариант ИН2190501 17 марта 2022 – задание №4 Решение: 2+1+1+1+2 = 7 Ответ: 7

Читать далее

ОГЭ 4.8 Между населёнными пунктами A, B, C, D, E построены дороги

Между населёнными пунктами A, B, C, D, E построены дороги, протяжённость которых приведена в таблице. Определите длину кратчайшего пути между пунктами A и E, проходящего через пункт D. Передвигаться можно только по дорогам, указанным в таблице. СтатГрад Вариант ИН2190501 25 апреля 2022 – задание №4

Читать далее

ОГЭ 4.7. Определите длину кратчайшего пути между пунктами A и D

Определите длину кратчайшего пути между пунктами A и D. Передвигаться можно только по дорогам, протяжённость которых указана в таблице. Между населёнными пунктами A , B , C , D , E построены дороги, протяжённость которых приведена в таблице.

Читать далее

ОГЭ 4.6. Определите длину кратчайшего пути между пунктами B и D.

ОГЭ 4. Определите длину кратчайшего пути между пунктами B и D. Досрочный открытый вариант №1 ЕГЭ по информатике 2020. Между населёнными пунктами A, B, C, D, E построены дороги, протяжённость которых (в километрах) приведена в таблице. Определите длину кратчайшего пути между пунктами B и D. Передвигаться можно только по дорогам, протяжённость которых указана в таблице. …

Читать далее

ОГЭ 4.5. Определите длину кратчайшего пути между пунктами A и D, проходящего через пункт C.

Определите длину кратчайшего пути между пунктами A и D, проходящего через пункт C. Между населёнными пунктами A, B, C, D, E построены дороги, протяжённость которых (в километрах) приведена в таблице (см. рисунок). Определите длину кратчайшего пути между пунктами A и D, проходящего через пункт C. Передвигаться можно только по дорогам, протяжённость которых указана в таблице.

Читать далее

ОГЭ 4.4. Определите длину кратчайшего пути между пунктами A и Е, проходящего через пункт D.

Определите длину кратчайшего пути между пунктами A и Е, проходящего через пункт D. Между населёнными пунктами A, B, C, D, E построены дороги, протяжённость которых (в километрах) приведена в таблице (см. рисунок). Определите длину кратчайшего пути между пунктами A и Е, проходящего через пункт D. Передвигаться можно только по дорогам, протяжённость которых указана в таблице.

Читать далее

ОГЭ 4.3. Определите длину кратчайшего пути между пунктами A и Е, проходящего через пункт E

Определите длину кратчайшего пути между пунктами A и Е, проходящего через пункт E. Между населёнными пунктами A, B, C, D, E построены дороги, протяжённость которых (в километрах) приведена в таблице (см. рисунок). Определите длину кратчайшего пути между пунктами A и Е, проходящего через пункт E. Передвигаться можно только по дорогам, протяжённость которых указана в таблице.

Читать далее

ОГЭ 4.2. Определите длину кратчайшего пути между пунктами A и Е, проходящего через пункт D

Определите длину кратчайшего пути между пунктами A и Е, проходящего через пункт D. Между населёнными пунктами A, B, C, D, E построены дороги, протяжённость которых (в километрах) приведена в таблице (см. рисунок). Определите длину кратчайшего пути между пунктами A и Е, проходящего через пункт D. Передвигаться можно только по дорогам, протяжённость которых указана в таблице.

Читать далее

ОГЭ 4.1. Определите длину кратчайшего пути между пунктами A и Е, проходящего через пункт B

Определите длину кратчайшего пути между пунктами A и Е, проходящего через пункт B Между населёнными пунктами A, B, C, D, E построены дороги, протяжённость которых (в километрах) приведена в таблице (см. рисунок). Определите длину кратчайшего пути между пунктами A и Е, проходящего через пункт B. Передвигаться можно только по дорогам, протяжённость которых указана в таблице.

Читать далее

  • Задача номер 138 математика 4 класс
  • Задание 3 номер 364 информатика
  • Задать вопрос юристу телефон
  • Задание 2 номер 77335
  • Задание 9 номер 564646