提出 #50159293
ソースコード 拡げる
#include <bits/stdc++.h>
#include <atcoder/modint>
namespace {
using ModInt [[maybe_unused]] = atcoder::modint998244353;
using Num [[maybe_unused]] = long long int;
using Vec [[maybe_unused]] = std::vector<Num>;
using Set [[maybe_unused]] = std::set<Num>;
using Mset [[maybe_unused]] = std::multiset<Num>;
using Edges [[maybe_unused]] = std::vector<std::vector<Num>>;
template<typename T>
using Q [[maybe_unused]] = std::queue<T>;
template<typename T>
using PQ [[maybe_unused]] = std::priority_queue<T, std::vector<T>, std::greater<T>>;
}
void solve(std::istream& is, std::ostream& os) {
Num n {0};
is >> n;
Num ans {0};
std::set<Num> ns;
std::map<Num, Num> counts;
ns.insert(n);
counts[n] = 1;
while(!ns.empty()) {
const auto x = *ns.rbegin();
ns.erase(x);
if (x < 2) {
continue;
}
const auto ct = counts[x];
ans += x * ct;
const auto l = x / 2;
const auto u = (x + 1) / 2;
counts[l] += ct;
if (!ns.contains(l)) {
ns.insert(l);
}
counts[u] += ct;
if (!ns.contains(u)) {
ns.insert(u);
}
}
os << ans << "\n";
}
int main(void) {
solve(std::cin, std::cout);
return 0;
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | C - Divide and Divide |
| ユーザ | zettsut |
| 言語 | C++ 20 (gcc 12.2) |
| 得点 | 300 |
| コード長 | 1374 Byte |
| 結果 | AC |
| 実行時間 | 1 ms |
| メモリ | 3656 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 300 / 300 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt |
| All | 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_random_00.txt, 01_random_01.txt, 01_random_02.txt, 01_random_03.txt, 01_random_04.txt, 02_corner_00.txt, 02_corner_01.txt, 03_min_00.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 00_sample_00.txt | AC | 1 ms | 3464 KiB |
| 00_sample_01.txt | AC | 1 ms | 3568 KiB |
| 00_sample_02.txt | AC | 1 ms | 3484 KiB |
| 01_random_00.txt | AC | 1 ms | 3476 KiB |
| 01_random_01.txt | AC | 1 ms | 3572 KiB |
| 01_random_02.txt | AC | 1 ms | 3476 KiB |
| 01_random_03.txt | AC | 1 ms | 3532 KiB |
| 01_random_04.txt | AC | 1 ms | 3656 KiB |
| 02_corner_00.txt | AC | 1 ms | 3428 KiB |
| 02_corner_01.txt | AC | 1 ms | 3364 KiB |
| 03_min_00.txt | AC | 1 ms | 3484 KiB |