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/contest/1.cpp | 22 ++++++++++++++++ works/life/chuanzhi-cup/contest/2.cpp | 28 ++++++++++++++++++++ works/life/chuanzhi-cup/contest/3.cpp | 46 +++++++++++++++++++++++++++++++++ works/life/chuanzhi-cup/contest/4.cpp | 48 +++++++++++++++++++++++++++++++++++ 4 files changed, 144 insertions(+) create mode 100644 works/life/chuanzhi-cup/contest/1.cpp create mode 100644 works/life/chuanzhi-cup/contest/2.cpp create mode 100644 works/life/chuanzhi-cup/contest/3.cpp create mode 100644 works/life/chuanzhi-cup/contest/4.cpp (limited to 'works/life/chuanzhi-cup/contest') diff --git a/works/life/chuanzhi-cup/contest/1.cpp b/works/life/chuanzhi-cup/contest/1.cpp new file mode 100644 index 0000000..4a20d97 --- /dev/null +++ b/works/life/chuanzhi-cup/contest/1.cpp @@ -0,0 +1,22 @@ +#include + +int main() { + int n, v, m, a; + std::scanf("%d%d%d%d", &n, &v, &m, &a); + + int money = 0; + + v -= a; + + for (int i = 0; i < n; i++) { + if (i % m == 0) { + v += a; + } + + money += v; + } + + std::printf("%d", money); + + return 0; +} \ No newline at end of file diff --git a/works/life/chuanzhi-cup/contest/2.cpp b/works/life/chuanzhi-cup/contest/2.cpp new file mode 100644 index 0000000..358e7fc --- /dev/null +++ b/works/life/chuanzhi-cup/contest/2.cpp @@ -0,0 +1,28 @@ +#include +#include + +int main() { + int x; + std::scanf("%d", &x); + + double gpa; + + if (x >= 90) + gpa = 4.0; + else if (x >= 60) { + gpa = (x - 50.0) / 10.0; + } else { + int s = std::floor(std::sqrt(x) * 10.0); + if (s >= 90) + gpa = 4.0; + else if (s >= 60) { + gpa = (s - 50.0) / 10.0; + } else { + gpa = 0; + } + } + + std::printf("%.1f", gpa); + + return 0; +} \ No newline at end of file diff --git a/works/life/chuanzhi-cup/contest/3.cpp b/works/life/chuanzhi-cup/contest/3.cpp new file mode 100644 index 0000000..8f0769d --- /dev/null +++ b/works/life/chuanzhi-cup/contest/3.cpp @@ -0,0 +1,46 @@ +#include +#include + +struct V { + V(int n, int t, int k) : n(n), t(t), k(k), c(t * k) {} + + int n; + int t; + int k; + const int c; +}; + +struct C { + bool operator()(const V &left, const V &right) const { + if (left.c > right.c) + return true; + else if (left.c < right.c) + return false; + else if (left.t > right.t) + return true; + else if (left.t < right.t) + return false; + else if (left.n < right.n) + return true; + return false; + } +}; + +int main() { + std::set data; + + int n; + std::scanf("%d", &n); + + for (int i = 1; i <= n; i++) { + int t, k; + std::scanf("%d%d", &t, &k); + data.insert(V{i, t, k}); + } + + for (const auto &v : data) { + std::printf("%d ", v.n); + } + + return 0; +} \ No newline at end of file diff --git a/works/life/chuanzhi-cup/contest/4.cpp b/works/life/chuanzhi-cup/contest/4.cpp new file mode 100644 index 0000000..da01a23 --- /dev/null +++ b/works/life/chuanzhi-cup/contest/4.cpp @@ -0,0 +1,48 @@ +#include +#include +#include +#include +#include + +int main() { + std::vector files; + int n; + std::cin >> n; + int current_count = 0; + while (current_count < n) { + std::string command; + std::cin >> command; + char a = command[0]; + if (a == 't') { + std::string file; + std::cin >> file; + auto iter = std::find(files.cbegin(), files.cend(), file); + if (iter == files.cend()) { + files.push_back(std::move(file)); + } + } else if (a == 'l') { + for (const auto &f : files) { + std::cout << f << '\n'; + } + } else { + char b = command[1]; + if (b == 'm') { + std::string file; + auto iter = std::find(files.cbegin(), files.cend(), file); + if (iter != files.cend()) + files.erase(iter); + } else { + std::string old, new_f; + std::cin >> old >> new_f; + auto iter = std::find(files.begin(), files.end(), old); + auto iter2 = std::find(files.begin(), files.end(), new_f); + if (iter != files.end() && iter2 == files.end()) { + *iter = std::move(new_f); + } + } + } + current_count++; + } + + return 0; +} -- cgit v1.2.3