Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчет acmp.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
12.82 Mб
Скачать

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

День программиста отмечается в 255-й день года (при этом 1 января считается нулевым днем). Требуется написать программу, которая определит дату (месяц и число григорианского календаря), на которую приходится День программиста в заданном году.

В григорианском календаре високосным является:

год, номер которого делится нацело на 400

год, номер которого делится на 4, но не делится на 100

Алгоритм решения:

Вводим year – номер года нашей эры. Проверяем, високосный ли этот год (год является високосным, если номер года нацело делится на 400, либо делится на 4, но не делится на 100). Если год високосный, день программиста будет приходиться на 12.09, если не високосный – на 13.09. Нули до номера года мы выводим в зависимости от кол-ва разрядов в исходном числе.

Модуль суммы

Дана последовательность целых чисел. Требуется найти подпоследовательность заданной последовательности с максимальным модулем суммы входящих в нее чисел. Напомним, что модуль целого числа x равняется x, если x ≥ 0 и -x, если x < 0.

Алгоритм решения:

Вводим длину последовательности - n. В цикле от 0 до n заполняем массив. В цикле от 0 до n находим сумму положительных числе и отрицательных чисел.

Сравниваем модуль сумм, выводим количество членов, а во вторую строку выписываем номера членов последовательностей.

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

Недавно на поле фермера Джона были обнаружены следы приземления летающих тарелок. Об этом даже писала газета Mew Yorc Courier.

Поле фермера Джона имеет форму круга радиусом r1. По сообщениям журналистов были обнаружены два следа от летающих тарелок, имевшие форму кругов. Один из них имел радиус r2, второй - радиус r3. Также сообщается, что они находились внутри поля фермера Джона и не пересекались (при этом, они, возможно, касались друг друга и/или границы поля).

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

#include <iostream>

using namespace std;

main()

{

int r1,r2,r3;

cin>>r1>>r2>>r3;

if (r1>=(r2+r3)) cout<<"YES";else cout<<"NO";

}

Алгоритм решения:

Вводим три числа – радиусы. Если сумма второго и третьего радиуса меньше или равна первому радиусу, то выводим YES, т.к. это возможно. Иначе выводим NO.

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

Даны длины трех отрезков. Требуется проверить: могут ли они являться сторонами треугольника.

#include <iostream> using namespace std; int main() { int x, y, z; cin >> x >> y >> z; if (x + y > z && x + z > y && z + y > x) cout << "YES"; else cout << "NO"; }

Алгоритм решения:

Вводим три числа – длины отрезков. Три отрезка могут быть сторонами треугольника, если каждый из них меньше суммарной длины двух остальных. Это условие мы проверяем для каждого из отрезков. Если все три условия соблюдаются, выводим YES. Иначе выводим NO.

ACM World Finals

Некоторые из вас, наверно, знают, что ежегодно проводится чемпионат мира по программированию среди студентов (http://acm.baylor.edu). В финал этого соревнования проходят около 80 команд со всего мира.

Каждая команда состоит из трех человек и имеет название. Напишите программу, которая по краткому названию команды и фамилиям ее участников, строит полное название команды.

Полное название команды состоит из краткого названия команды и списка фамилий ее участников. Фамилии участников в списке должны быть упорядочены по алфавиту и отделены друг от друга запятыми. Название команды от фамилий участников должно быть отделено двоеточием. После каждого знака препинания должен стоять ровно один пробел.

Алгоритм решения:

Вводим четыре строки. Сортируем их, и выводим в необходимом порядке.

NEERC

В полуфинале студенческого чемпионата мира по программированию NEERC (http://neerc.ifmo.ru) участвуют команды из n институтов. Участники для проведения соревнований распределяются по k залам, каждый из которых имеет размеры, достачные для размещения всех команд от всех институтов. При этом по правилам соревнований в одном зале может находиться не более одной команды от института.

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

Напишите программу, определяющую максимальное количество команд, которые можно допустить до участия в полуфинале.

Алгоритм решения:

Вводим n – количество институтов, подавших заявки. В цикле от 0 до n вводим массив a – кол-во команд от каждого института. Вводим k – кол-во залов. В цикле от 1 до n включительно проверяем: если кол-во команд от института меньше кол-ва залов, то (максимальное кол-во команд) мы прибавляем кол-во команд от института, иначе прибавляем кол-во залов.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]