From 90375859767eb4cae3a7a93c64725b504d7f0fe0 Mon Sep 17 00:00:00 2001 From: crupest Date: Wed, 24 Feb 2021 00:36:15 +0800 Subject: import(life): Add chuanzhi-cup codes. --- works/life/chuanzhi-cup/practice-contest/1.cpp | 27 +++++++++++++++ works/life/chuanzhi-cup/practice-contest/2.cpp | 30 ++++++++++++++++ works/life/chuanzhi-cup/practice-contest/3.cpp | 38 +++++++++++++++++++++ works/life/chuanzhi-cup/practice-contest/4.cpp | 47 ++++++++++++++++++++++++++ 4 files changed, 142 insertions(+) create mode 100644 works/life/chuanzhi-cup/practice-contest/1.cpp create mode 100644 works/life/chuanzhi-cup/practice-contest/2.cpp create mode 100644 works/life/chuanzhi-cup/practice-contest/3.cpp create mode 100644 works/life/chuanzhi-cup/practice-contest/4.cpp (limited to 'works/life/chuanzhi-cup/practice-contest') diff --git a/works/life/chuanzhi-cup/practice-contest/1.cpp b/works/life/chuanzhi-cup/practice-contest/1.cpp new file mode 100644 index 0000000..1a0d88e --- /dev/null +++ b/works/life/chuanzhi-cup/practice-contest/1.cpp @@ -0,0 +1,27 @@ +#include + +int main() { + int n; + std::cin >> n; + + int count = 0; + + for (int i = 1; i <= n; i++) { + int num = i; + int sum = 0; + while (num != 0) { + sum += num % 10; + num /= 10; + + if (sum > 9) + break; + } + + if (sum == 9) + count++; + } + + std::cout << count; + + return 0; +} diff --git a/works/life/chuanzhi-cup/practice-contest/2.cpp b/works/life/chuanzhi-cup/practice-contest/2.cpp new file mode 100644 index 0000000..5622eb4 --- /dev/null +++ b/works/life/chuanzhi-cup/practice-contest/2.cpp @@ -0,0 +1,30 @@ +#include + +long long sqrt(long long num) { + long long left = 1, right = num; + while (left != right) { + long long mid = (left + right) / 2; + if (mid * mid < num) { + left = mid + 1; + } else { + right = mid; + } + } + return left; +} + +int main() { + long long c; + std::cin >> c; + + for (long long i = 1; i < c; i++) { + long long b2 = c * c - i * i; + long long b = sqrt(b2); + if (b * b == b2) { + std::cout << i << " " << b; + break; + } + } + + return 0; +} diff --git a/works/life/chuanzhi-cup/practice-contest/3.cpp b/works/life/chuanzhi-cup/practice-contest/3.cpp new file mode 100644 index 0000000..1f79723 --- /dev/null +++ b/works/life/chuanzhi-cup/practice-contest/3.cpp @@ -0,0 +1,38 @@ +#include +#include +#include +#include +#include + +int main() { + std::string input; + std::getline(std::cin, input); + + std::regex reg(R"aaa((\d+)([GMK]?B)=\?([GMK]?B))aaa"); + std::smatch match; + std::regex_match(input, match, reg); + + std::string original_number_str = match[1].str(); + std::string original_unit = match[2].str(); + std::string target_unit = match[3].str(); + + double original_number = std::stod(original_number_str); + + auto to_ratio = [](const std::string s) -> double { + if (s.size() == 1) + return 1; + if (s[0] == 'G') + return std::pow(2, 30); + if (s[0] == 'M') + return std::pow(2, 20); + return std::pow(2, 10); + }; + + double original_ratio = to_ratio(original_unit); + double target_ratio = to_ratio(target_unit); + + std::cout << std::fixed << std::setprecision(6) + << (original_number * original_ratio / target_ratio); + + return 0; +} diff --git a/works/life/chuanzhi-cup/practice-contest/4.cpp b/works/life/chuanzhi-cup/practice-contest/4.cpp new file mode 100644 index 0000000..bab6b2d --- /dev/null +++ b/works/life/chuanzhi-cup/practice-contest/4.cpp @@ -0,0 +1,47 @@ +#include +#include +#include + +int score[1000001]; +double result[1000001]; + +int main() { + int min; + int max; + int sum = 0; + + int count; + std::cin >> count; + + for (int i = 1; i <= count; i++) { + std::cin >> score[i]; + } + + int n1 = score[1], n2 = score[2]; + sum += n1 + n2; + min = std::min(n1, n2); + max = std::max(n1, n2); + + for (int i = 3; i <= count; i++) { + int current = score[i]; + + min = std::min(current, min); + max = std::max(current, max); + + sum += current; + + int s = sum; + s -= min; + s -= max; + + result[i] = static_cast(s) / (i - 2); + } + + std::cout << std::fixed << std::setprecision(2); + + for (int i = 3; i <= count; i++) { + std::cout << result[i] << "\n"; + } + + return 0; +} -- cgit v1.2.3