aboutsummaryrefslogtreecommitdiff
path: root/works/life
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2021-03-28 18:26:56 +0800
committercrupest <crupest@outlook.com>2021-03-28 18:26:56 +0800
commit46bfa3e16a168b527cadb4a5d98290732246f3f7 (patch)
tree99c961d2c9cf04b6a5d1e60586f8137574c9e80e /works/life
parentac32eebb6cad203e7a45834d3dc90b639e3d6ed3 (diff)
downloadcrupest-46bfa3e16a168b527cadb4a5d98290732246f3f7.tar.gz
crupest-46bfa3e16a168b527cadb4a5d98290732246f3f7.tar.bz2
crupest-46bfa3e16a168b527cadb4a5d98290732246f3f7.zip
import(life): Add chuanzhi cup final contest.
Diffstat (limited to 'works/life')
-rw-r--r--works/life/chuanzhi-cup/final-contest/1.cpp32
-rw-r--r--works/life/chuanzhi-cup/final-contest/2.cpp29
-rw-r--r--works/life/chuanzhi-cup/final-contest/3.cpp38
-rw-r--r--works/life/chuanzhi-cup/final-contest/4.cpp86
-rw-r--r--works/life/chuanzhi-cup/final-contest/5.cpp48
5 files changed, 233 insertions, 0 deletions
diff --git a/works/life/chuanzhi-cup/final-contest/1.cpp b/works/life/chuanzhi-cup/final-contest/1.cpp
new file mode 100644
index 0000000..ad95603
--- /dev/null
+++ b/works/life/chuanzhi-cup/final-contest/1.cpp
@@ -0,0 +1,32 @@
+#include <iostream>
+#include <unordered_set>
+
+int main() {
+ std::ios_base::sync_with_stdio(false);
+ std::cin.tie(nullptr);
+
+ int n, m;
+ std::cin >> n >> m;
+
+ std::unordered_set<int> a;
+
+ for (int i = 0; i < n; i++) {
+ int j;
+ std::cin >> j;
+ a.insert(j);
+ }
+
+ int count = 0;
+
+ for (int i = 0; i < m; i++) {
+ int j;
+ std::cin >> j;
+ if (a.count(j)) {
+ count++;
+ }
+ }
+
+ std::cout << count;
+
+ return 0;
+}
diff --git a/works/life/chuanzhi-cup/final-contest/2.cpp b/works/life/chuanzhi-cup/final-contest/2.cpp
new file mode 100644
index 0000000..6e65576
--- /dev/null
+++ b/works/life/chuanzhi-cup/final-contest/2.cpp
@@ -0,0 +1,29 @@
+#include <iostream>
+
+long long a[1010];
+
+int main() {
+ std::ios_base::sync_with_stdio(false);
+ std::cin.tie(nullptr);
+
+ int n, k;
+ std::cin >> n >> k;
+
+ for (int i = 0; i < n; i++) {
+ std::cin >> a[i];
+ }
+
+ long long count = 0;
+
+ for (int i = 0; i < n; i++) {
+ for (int j = i + 1; j < n; j++) {
+ if (a[i] * a[j] <= k) {
+ count++;
+ }
+ }
+ }
+
+ std::cout << count;
+
+ return 0;
+}
diff --git a/works/life/chuanzhi-cup/final-contest/3.cpp b/works/life/chuanzhi-cup/final-contest/3.cpp
new file mode 100644
index 0000000..288e011
--- /dev/null
+++ b/works/life/chuanzhi-cup/final-contest/3.cpp
@@ -0,0 +1,38 @@
+#include <cctype>
+#include <iostream>
+#include <string>
+
+int main() {
+ std::ios_base::sync_with_stdio(false);
+ std::cin.tie(nullptr);
+
+ int T;
+ std::cin >> T;
+
+ for (int i = 0; i < T; i++) {
+ int _a, _b;
+ std::cin >> _a >> _b;
+ std::string a, b;
+ std::cin >> a >> b;
+
+ for (char &c : a) {
+ c = std::tolower(c);
+ }
+
+ for (char &c : b) {
+ c = std::tolower(c);
+ }
+
+ int count = 0;
+
+ for (int i = 0; i < b.size() - a.size() + 1; i++) {
+ if (a == b.substr(i, a.size())) {
+ count++;
+ }
+ }
+
+ std::cout << count << "\n";
+ }
+
+ return 0;
+}
diff --git a/works/life/chuanzhi-cup/final-contest/4.cpp b/works/life/chuanzhi-cup/final-contest/4.cpp
new file mode 100644
index 0000000..19c66d3
--- /dev/null
+++ b/works/life/chuanzhi-cup/final-contest/4.cpp
@@ -0,0 +1,86 @@
+#include <iostream>
+#include <map>
+
+std::map<int, int> c[3];
+
+int main() {
+ std::ios_base::sync_with_stdio(false);
+ std::cin.tie(nullptr);
+
+ int n, m;
+
+ std::cin >> n >> m;
+
+ for (int i = 0; i < 3; i++) {
+ auto &cc = c[i];
+ for (int j = 0; j < n; j++) {
+ int k;
+ std::cin >> k;
+ cc[k]++;
+ }
+ }
+
+ int current = 0;
+ std::pair<int, int> last;
+ int last_put = 0;
+
+ while (true) {
+ auto &cc = c[current];
+
+ if (current == last_put) {
+ auto i = cc.begin();
+ last.first = i->first;
+ last.second = 1;
+ if (i->second == 1) {
+ cc.erase(i);
+ } else {
+ i->second--;
+ }
+ last_put = current;
+ } else {
+ bool can = false;
+
+ for (auto i = cc.upper_bound(last.first); i != cc.end(); ++i) {
+ if (i->second >= last.second) {
+ can = true;
+ i->second -= last.second;
+ last.first = i->first;
+ if (i->second == 0) {
+ cc.erase(i);
+ }
+ break;
+ }
+ }
+
+ if (!can) {
+ auto end = cc.upper_bound(last.first);
+ for (auto i = cc.begin(); i != end; ++i) {
+ if (i->second > last.second) {
+ can = true;
+ i->second -= last.second + 1;
+ last.first = i->first;
+ last.second++;
+ if (i->second == 0) {
+ cc.erase(i);
+ }
+ break;
+ }
+ }
+ }
+
+ if (can) {
+ last_put = current;
+ }
+ }
+
+ if (cc.empty()) {
+ std::cout << current + 1;
+ break;
+ }
+
+ current++;
+ current %= 3;
+ }
+
+ return 0;
+}
diff --git a/works/life/chuanzhi-cup/final-contest/5.cpp b/works/life/chuanzhi-cup/final-contest/5.cpp
new file mode 100644
index 0000000..a2707c0
--- /dev/null
+++ b/works/life/chuanzhi-cup/final-contest/5.cpp
@@ -0,0 +1,48 @@
+#include <algorithm>
+#include <iostream>
+
+int n, m;
+int w[100010];
+int c[100010];
+
+int main() {
+ std::ios_base::sync_with_stdio(false);
+ std::cin.tie(nullptr);
+
+ std::cin >> n >> m;
+
+ for (int i = 0; i < n; i++) {
+ std::cin >> w[i];
+ }
+
+ for (int i = 0; i < m; i++) {
+ std::cin >> c[i];
+ }
+
+ std::sort(w, w + n);
+ std::sort(c, c + m);
+
+ int a = 0, b = 0;
+ int count = 0;
+
+ while (true) {
+ if (a == n) {
+ break;
+ }
+ if (b == m) {
+ break;
+ }
+
+ if (w[a] >= c[b]) {
+ a++;
+ b++;
+ count++;
+ } else {
+ a++;
+ }
+ }
+
+ std::cout << count;
+
+ return 0;
+}