Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Курсы ККДП
Дистрибутивы
Статьи
Ссылки


 
[Вернуться к задаче]   1
  1  Якубов Мубинходжа Азизходжаевич, 21 марта 2026 г. 8:21:25
     #include <iostream> #include <vector> using namespace std; typedef long long ll; ll rooms_up_to_floor(ll floor, ll k, ll x, ll y) { ll multiples = floor / k; ll others = floor - multiples; return multiples * x + others * y; } int main() { ll n, k, x, y; cin >> n >> k >> x >> y; int q; cin >> q; vector<ll> a(q); for (int i = 0; i < q; ++i) cin >> a[i]; ll rooms_per_section = (n / k) * x + (n - n / k) * y; for (int i = 0; i < q; ++i) { ll room = a[i]; ll section = (room - 1) / rooms_per_section; ll room_in_section = room - section * rooms_per_section; ll low = 1, high = n, ans = -1; while (low <= high) { ll mid = (low + high) / 2; ll total_rooms = rooms_up_to_floor(mid, k, x, y); if (total_rooms >= room_in_section) { ans = mid; high = mid - 1; } else { low = mid + 1;
  2  Волочаев Александр, 04 января 2026 г. 15:46:53
     Первый тест это данные из примера или нет?
 1

Чтобы оставить сообщение необходимо зарегистрироваться и авторизоваться!

Красноярский краевой Дворец пионеров, (c)2006 - 2026, ИНН 246305493507, E-mail: admin@acmp.ru