Geome try/codechef KAN13F

Материал из DISCOPAL
Перейти к: навигация, поиск

Codechef/KAN13F

#pragma GCC optimize("Ofast")
#include <bits/stdc++.h>
 
uint64_t solve(size_t deg, const std::vector<uint64_t>& seq) {
    uint64_t ans = 0;
    size_t cnt = seq.size();
    auto steps = (cnt - 1 + deg - 2) / (deg - 1);
    std::priority_queue<uint64_t, std::vector<uint64_t>, std::greater<uint64_t>> vals;
    for (auto val : seq) {
        vals.push(val);
    }
 
    size_t curr_deg = deg;
    for (auto rest_steps = steps, rest_cnt = cnt;
            rest_steps > 0 && rest_cnt > 1;
            rest_cnt -= (curr_deg - 1), --rest_steps) {
        curr_deg = 2;
        if (rest_cnt - 2 > (rest_steps - 1) * (deg - 1)) {
            curr_deg = rest_cnt - (rest_steps - 1) * (deg - 1);
        }
 
        uint64_t sum = 0;
        for (size_t i = 0; i < curr_deg && !vals.empty(); ++i) {
            sum += vals.top();
            vals.pop();
        }
        ans += sum;
        vals.push(sum);
    }
 
    return ans;
}
 
int main() {
    size_t tests = 0;
    // std::cin >> tests;
    scanf("%llu", &tests);
    std::vector<uint64_t> answers(tests);
    for (auto& ans : answers) {
        size_t cnt = 0, deg = 0;
        // std::cin >> cnt >> deg;
        scanf("%llu %llu", &cnt, &deg);
        std::vector<uint64_t> seq(cnt);
        for (auto& val : seq) {
            // std::cin >> val;
            scanf("%llu", &val);
        }
        ans = solve(deg, seq);
    }
 
    for (size_t idx = 0; idx < tests; ++idx) {
        // std::cout << "Case " << idx + 1 << ": " << answers[idx] << '\n';
        printf("Case %llu: %llu\n", idx + 1, answers[idx]);
    }
 
    return 0;
}

StasFomin 02:39, 19 мая 2022 (UTC): Вы невнимательны и игнорировали и курс и задания. Решения ожидается только на Python.

2021-10-15 Practical Block 2021-11-03 14-27-56 image0.png

Концептуально:

2021-10-15 Practical Block 2021-11-03 15-02-30 image0.png

2021-10-15 Practical Block 2021-11-03 14-24-09 image0.png

(Их там 66)

    • Не нужно брать десятки задач на себя сразу, и освобождайте то, что не получается.
  • Решенное
    • Ну смотрите, как оформлено в прошлые годы
    • Решение на подстранице вашей личной страницы
      • Вики-ссылка на задачу
      • Python-код в «<source lang="python"></source>»
      • Метка «{{checkme}}», когда решите.
2021-10-15 Practical Block 2021-11-03 14-22-47 image0.png

(Их там 10)


  • Как легче решать Python
    • Загрузка данных
    • Выбирайте более свежий CPython или PyPy.

[ Хронологический вид ]Комментарии

(нет элементов)

Войдите, чтобы комментировать.