#include <iostream>
using namespace std;
int main () {
int a,b,c;
cout << "a: ";
cin >> a;
cout << "b: ";
cin >> b;
cout << "c: ";
cin >> c;
int n = (c - a) / b;
cout << "n = " << n << endl;
cout << "---------------------------------\n";
main();
}
Спиннер - модная игрушка с подшипниками в основании, к которому прикреплены лопасти. Афанасий открыл бизнес по производству спиннеров. Он выяснил, что за спиннер, у которого N
лопастей покупатели готовы платить A + B x N
рублей, но при этом покупатель не станет покупать спиннер, если его цена будет выше C
рублей. Определите максимальное число лопастей спиннера, который согласится приобрести покупатель.
Программа получает на вход три числа A
, B
, C
(стоимость основания спиннера, стоимость одной лопасти и максимальная стоимость всего спиннера). Все числа-целые положительные, не превосходящие 2х109, при этом A < C
Программа должна вывести одно число – максимальное число лопастей спиннера.
#include <iostream>
using namespace std;
int main () {
int m;
cout << "m: ";
cin >> m;
int blades4 = m % 3;
int blades3 = (m - 4 * blades4) / 3;
if (blades3 >= 0) {
cout << blades3 << endl;
cout << blades4 << endl;
}
else {
cout << "Error!";
}
cout << "---------------------------------------\n";
main();
}
Денис тоже решил заняться производством и продажей спиннеров, но он считает, что у спиннера может быть только три или четыре лопасти. У него есть ровно M
лопастей, которые он может прикреплять к основаниям, и неограниченный запас оснований. Он хочет изготовить несколько трёхлопастных и несколько четырёхлопастных спиннеров так, чтобы использовать все M
лопастей. Определите, сколько спиннеров каждого вида он должен произвести.
Программа получает на вход одно целое положительное число M, не превосходящее 2×109, – количество лопастей, которое есть у Дениса.
Программа должна вывести два целых числа – количество спиннеров с 3 лопастями и количество спиннеров с 4 лопастями, которые должен произвести Денис. Если у задачи есть несколько решений, нужно вывести любое из них. Если Денис не может использовать ровно M
лопастей для производства спиннеров, программа должна вывести два числа 0.
#include <iostream>
using namespace std;
int main () {
int x, y, result;
cout << "x: ";
cin >> x;
cout << "y: ";
cin >> y;
for (int i = 0; i < x; i++) {
for (int j = i; j < x; j++) {
for (int i = 0; i < y; i++) {
for (int j = i; j < y; j++) {
result++;
}
}
}
}
cout << result << endl;
cout << "--------------------------------------------\n";
main();
}
Саша совсем не любит спиннеры, поэтому он рисует в тетрадке. Он взял тетрадный лист из N
× M
клеточек и пронумеровал все клетки различными числами. Теперь ему стало интересно, сколько различных прямоугольников он может вырезать из этого листа бумаги по границам клеточек.
Программа получает на вход два числа N
и M
– размеры исходного листа. Все числа – целые положительные, не превосходящие 75000.
Программа должна вывести одно число – количество прямоугольников, которые можно вырезать из данного листа бумаги (весь лист целиком также считается одним из возможных прямоугольников).
#include <iostream>
using namespace std;
int CoupeNumber(int k) {
if (k > 36) {
return 8 - (k - 37) / 2;
}
else {
return (k - 1) / 4;
}
}
int main () {
int coupe[9];
int N, place;
cout << "N: ";
cin >> N;
for (int i = 0; i < N; i++) {
cin >> place;
coupe[CoupeNumber(place)] += 1;
}
int result = 0;
int curr = 0;
for (int i = 0; i < 9; i++) {
if (coupe[i] == 6) {
curr += 1;
result = max(result, curr);
}
else {
curr = 0;
}
}
cout << result << endl;
cout << "----------------------------------------\n";
main();
}
В плацкартном вагоне 54 места, пронумерованных числами от 1 до 54. Вагон разбит на 9 купе. Первые 36 мест расположены по левую сторону от прохода, места 1–4 находятся в первом купе, места 5–8 – во втором и т. д. В девятом купе находятся места с номерами 33–36. По правую сторону от прохода находятся боковые места, их номера от 37 до 54, причём они нумеруются в противоположном направлении: места 37 и 38 находятся напротив девятого купе, а места 53 и 54 – напротив первого. Ниже приведена схема всех мест в вагоне.
Группа школьников едет на олимпиаду и будет всю дорогу крутить спиннеры. Поэтому им нужно купить места в нескольких подряд идущих купе вместе с прилегающими боковыми местами. Даны номера свободных мест в поезде. Определите, какое наибольшее число подряд идущих купе полностью свободны.
Программа получает на вход число N
– количество свободных мест в вагоне (0 ≤ N ≤ 54). Следующие N
строк содержат номера свободных мест – различные числа от 1 до 54 в произвольном порядке, по одному числу в строке.
Программа должна вывести одно целое число – максимальное число подряд идущих свободных купе (купе – 4 места слева от прохода и 2 боковых места) в этом вагоне.
#include <iostream>
using namespace std;
int main () {
int N, K;
cout << "N: ";
cin >> N;
cout << "K: ";
cin >> K;
while (K != 1) {
N = (N - K % 2) / 2;
K = K / 2;
}
cout << (N - 1) / 2 << endl;
cout << N / 2 << endl;
cout << "------------------------------\n";
main();
}
В первом ряду кинотеатра N + 2
мест, крайние места заняты персоналом кинотеатра, но N
мест посередине свободно. K школьников входят в зрительный зал по очереди, и, конечно же, каждый школьник достаёт спиннер и начинает его крутить до начала сеанса. Поэтому каждый школьник выбирает себе место как можно дальше от уже занятых мест. А именно, школьник находит самый большой свободный участок в ряду (любой, если таких несколько) и садится посередине него. Если число свободных мест на этом участке было нечётно, то школьник садится точно посередине участка, тогда слева и справа от него остаётся поровну свободных мест. Если же это число чётно, то школьник выбирает одно из двух свободных мест посередине, тогда с одной стороны от школьника будет на одно свободное место больше, чем с другой стороны.
По данным числам N
и K
определите, сколько мест осталось свободными с двух сторон от школьника, который занял место последним (K-м по счёту).
Программа получает на вход два целых числа N
и K
, 1 ≤ K ≤ N ≤ 1018, и должна вывести два целых числа в порядке неубывания – количество свободных мест с двух сторон от школьника, который последним занял место в ряду.