diff options
Diffstat (limited to 'works')
| -rw-r--r-- | works/life/chuanzhi-cup/final-contest/1.cpp | 32 | ||||
| -rw-r--r-- | works/life/chuanzhi-cup/final-contest/2.cpp | 29 | ||||
| -rw-r--r-- | works/life/chuanzhi-cup/final-contest/3.cpp | 38 | ||||
| -rw-r--r-- | works/life/chuanzhi-cup/final-contest/4.cpp | 86 | ||||
| -rw-r--r-- | works/life/chuanzhi-cup/final-contest/5.cpp | 48 | 
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; +} | 
