c++
76
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
double a, b, x, y, z;
cin >> a >> b >> x >> y >> z;
// впорядкуємо двері: a ≤ b
if (a > b) swap(a, b);
bool ok = false;
// всі пари розмірів шафи
double p[3] = {x, y, z};
// перебираємо всі комбінації двох розмірів із трьох
for (int i = 0; i < 3; i++) {
for (int j = i + 1; j < 3; j++) {
double w = p[i], h = p[j];
// впорядкуємо пару: w ≤ h
if (w > h) swap(w, h);
if (w <= a && h <= b) ok = true;
}
}
cout << (ok ? 1 : 0);
}
4719
#include <iostream>
int main() {
// Оголошуємо змінні для координат:
// r1, c1 - рядок та стовпець тури
// r2, c2 - рядок та стовпець іншої фігури
int r1, c1, r2, c2;
// Введення чотирьох координат
// r1
if (!(std::cin >> r1)) return 0;
// c1
if (!(std::cin >> c1)) return 0;
// r2
if (!(std::cin >> r2)) return 0;
// c2
if (!(std::cin >> c2)) return 0;
// Тура б'є фігуру, якщо їхні рядки збігаються (r1 == r2)
// АБО їхні стовпці збігаються (c1 == c2).
if (r1 == r2 || c1 == c2) {
std::cout << "YES" << std::endl;
} else {
std::cout << "NO" << std::endl;
}
}
4720
Сергійко буде щасливий ("HAPPY"), якщо обрана точка:
Належить чорному прямокутнику.
НЕ належить білому прямокутнику.
Інакше Сергійко буде засмучений ("SAD").
#include <stdio.h>
int main(void)
{
int x1,x2,x3,x4,y1,y2,y3,y4,x0,y0;
scanf("%d %d %d %d",&x1,&y1,&x2,&y2);
scanf("%d %d %d %d",&x3,&y3,&x4,&y4);
scanf("%d %d",&x0,&y0);
if ((x3 < x0) && (x0 < x4) && (y4 < y0) && (y0 < y3))
printf("SAD\n");
else if ((x1 <= x0) && (x0 <= x2) && (y2 <= y0) && (y0 <= y1))
printf("HAPPY\n");
else printf("SAD\n");
}
4721
Для розв'язання цієї задачі вам потрібно порахувати, скільки разів цифра "5" зустрічається у номері квитка (n).
#include <iostream>
int main() {
// n - номер квитка
int n;
if (!(std::cin >> n)) return 0;
int count = 0;
// Обробляємо число n, доки воно не стане нулем
while (n > 0) {
int digit = n % 10;
if (digit == 5) {
count++; // Збільшуємо лічильник
}
n = n / 10;
}
std::cout << count << std::endl;
}
4722
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
// Функція для множення двох великих чисел, представлених рядками.
// Повертає результат множення як рядок.
string multiply_big_numbers(string num1, string num2) {
int len1 = num1.length();
int len2 = num2.length();
// Якщо хоча б одне число 0, результат - "0"
if (len1 == 0 || len2 == 0)
return "0";
// Вектор для зберігання результату множення.
// Розмір: len1 + len2 (максимально можлива кількість цифр)
vector<int> result(len1 + len2, 0);
// Індекси для відстеження позицій у result
int i_n1 = 0;
int i_n2 = 0;
// Перебираємо цифри першого числа (num1) справа наліво
for (int i = len1 - 1; i >= 0; i--) {
int carry = 0;
// Перетворюємо символ на цифру
int n1 = num1[i] - '0';
i_n2 = 0;
// Перебираємо цифри другого числа (num2) справа наліво
for (int j = len2 - 1; j >= 0; j--) {
// Перетворюємо символ на цифру
int n2 = num2[j] - '0';
// Множення, додавання результату з попереднього розряду та перенесення
int sum = n1 * n2 + result[i_n1 + i_n2] + carry;
// Перенесення для наступної ітерації
carry = sum / 10;
// Зберігаємо останню цифру суми
result[i_n1 + i_n2] = sum % 10;
i_n2++;
}
// Зберігаємо останнє перенесення
if (carry > 0)
result[i_n1 + i_n2] += carry;
i_n1++;
}
// Формуємо фінальний рядок результату
// Визначаємо позицію першої ненульової цифри (видаляємо нулі на початку)
int i = result.size() - 1;
while (i >= 0 && result[i] == 0)
i--;
// Якщо всі цифри - нулі (наприклад, 0 * 5)
if (i == -1)
return "0";
// Створюємо рядок результату
string s = "";
while (i >= 0)
s += to_string(result[i--]);
return s;
}
int main() {
// Швидке введення/виведення
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int n_int, k_int;
// Введення N
if (!(cin >> n_int)) return 0;
// Введення K
if (!(cin >> k_int)) return 0;
// Обробка крайнього випадку: якщо n = 0, то n повторене k разів - це 0. 0^2 = 0.
if (n_int == 0) {
cout << 0 << endl;
return 0;
}
// 1. Формування великого числа X
string n_str = to_string(n_int);
string X = "";
for (int i = 0; i < k_int; ++i) {
X += n_str;
}
// 2. Піднесення до квадрату: X * X
string result = multiply_big_numbers(X, X);
// Виведення результату
cout << result << endl;
}
4740
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
// Швидке введення/виведення
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int N; // Кількість мешканців
// Введення N
if (!(cin >> N)) return 0;
// Створюємо вектор для підрахунку частоти віку.
// Розмір 1001 для віку від 0 до 1000 включно.
vector<int> counts(1001, 0);
int age;
// 1. Підрахунок частоти
for (int i = 0; i < N; ++i) {
if (!(cin >> age)) return 0;
// Перевірка на діапазон (хоча за умовою це гарантовано)
if (age >= 0 && age <= 1000) {
counts[age]++;
}
}
// 2. Пошук моди (віку з максимальною частотою)
int max_count = -1;
int mode_age = -1; // Змінна для зберігання віку-моди
// Проходимо по масиву віку від 0 до 1000.
// Це ГАРАНТУЄ, що у випадку однакової частоти буде обрано НАЙМЕНШИЙ вік.
for (int current_age = 0; current_age <= 1000; ++current_age) {
// Отримуємо частоту поточного віку
int current_count = counts[current_age];
// Якщо поточна частота більша за максимальну, оновлюємо максимум та вік
if (current_count > max_count) {
max_count = current_count;
mode_age = current_age;
}
// Умова "current_count == max_count" тут не перевіряється,
// оскільки нам потрібен лише найменший вік.
}
// 3. Виведення результату
cout << mode_age << endl;
return 0;
}
Комментариев нет:
Отправить комментарий