diff --git a/Codeforces Round 988 (Div. 3)/A. Twice.cpp b/Codeforces Round 988 (Div. 3)/A. Twice.cpp new file mode 100644 index 0000000..d07aee3 --- /dev/null +++ b/Codeforces Round 988 (Div. 3)/A. Twice.cpp @@ -0,0 +1,97 @@ +/* Problem URL: https://codeforces.com/contest/2037/problem/0 */ + +#include + +using namespace std; + +#define V vector + +#define rmin(a, b) a = min(a, b) +#define rmax(a, b) a = max(a, b) + +#define rep(i, lim) for (size_t i = 0; i < (lim); i++) +#define nrep(i, s, lim) for (size_t i = s; i < (lim); i++) + +#define repv(i, v) for (auto &i : (v)) +#define fillv(v) for (auto &itr_ : (v)) { cin >> itr_; } +#define sortv(v) sort(v.begin(), v.end()) +#define all(v) (v).begin(), (v).end() + +using vi = vector; +using vvi = vector; +using vvvi = vector; +using vvvvi = vector; + +using ll = long long; + +using vl = vector; +using vvl = vector; +using vvvl = vector; +using vvvvl = vector; + +template +auto operator<<(ostream &os, const vector &vec)->ostream& { + os << vec[0]; + for (size_t i = 1; i < vec.size(); i++) { + os << ' ' << vec[i]; + } + os << '\n'; + return os; +} + +template +auto operator>>(istream &is, vector &vec)->istream& { + for (auto &i : vec) { + is >> i; + } + return is; +} + +template +auto operator<<(ostream &os, const vector> &vec)->ostream& { + for (auto &i : vec) { + os << i[0]; + for (size_t j = 1; j < i.size(); j++) { + os << ' ' << i[j]; + } + os << '\n'; + } + return os; +} + +template +auto operator>>(istream &is, vector> &vec)->istream& { + for (auto &i : vec) { + for (auto &j : i) { + is >> j; + } + } + return is; +} + +int main() +{ + ios::sync_with_stdio(false); + cin.tie(nullptr); + + int t; + cin >> t; + while (t--) { + int n; + cin >> n; + + map m; + while (n--) { + int i; + cin >> i; + m[i]++; + } + + int ans = 0; + for (auto i : m) { + ans += i.second / 2; + } + + cout << ans << '\n'; + } +} diff --git a/Codeforces Round 988 (Div. 3)/B. Intercepted Inputs.cpp b/Codeforces Round 988 (Div. 3)/B. Intercepted Inputs.cpp new file mode 100644 index 0000000..b665fa0 --- /dev/null +++ b/Codeforces Round 988 (Div. 3)/B. Intercepted Inputs.cpp @@ -0,0 +1,106 @@ +/* Problem URL: https://codeforces.com/contest/2037/problem/B */ + +#include + +using namespace std; + +#define V vector + +#define rmin(a, b) a = min(a, b) +#define rmax(a, b) a = max(a, b) + +#define rep(i, lim) for (size_t i = 0; i < (lim); i++) +#define nrep(i, s, lim) for (size_t i = s; i < (lim); i++) + +#define repv(i, v) for (auto &i : (v)) +#define fillv(v) for (auto &itr_ : (v)) { cin >> itr_; } +#define sortv(v) sort(v.begin(), v.end()) +#define all(v) (v).begin(), (v).end() + +using vi = vector; +using vvi = vector; +using vvvi = vector; +using vvvvi = vector; + +using ll = long long; + +using vl = vector; +using vvl = vector; +using vvvl = vector; +using vvvvl = vector; + +template +auto operator<<(ostream &os, const vector &vec)->ostream& { + os << vec[0]; + for (size_t i = 1; i < vec.size(); i++) { + os << ' ' << vec[i]; + } + os << '\n'; + return os; +} + +template +auto operator>>(istream &is, vector &vec)->istream& { + for (auto &i : vec) { + is >> i; + } + return is; +} + +template +auto operator<<(ostream &os, const vector> &vec)->ostream& { + for (auto &i : vec) { + os << i[0]; + for (size_t j = 1; j < i.size(); j++) { + os << ' ' << i[j]; + } + os << '\n'; + } + return os; +} + +template +auto operator>>(istream &is, vector> &vec)->istream& { + for (auto &i : vec) { + for (auto &j : i) { + is >> j; + } + } + return is; +} + +int main() +{ + ios::sync_with_stdio(false); + cin.tie(nullptr); + + int t; + cin >> t; + while (t--) { + int size; + cin >> size; + vi fds(size); + cin >> fds; + + set s; + + int n; + int m; + for (auto i : fds) { + if ((size - 2) % i != 0) { + continue; + } + + auto itr = s.find((size - 2) / i); + if (itr != s.end()) { + n = i; + m = *itr; + break; + } + + s.insert(i); + } + + cout << n << ' ' << m << '\n'; + } +} diff --git a/Codeforces Round 988 (Div. 3)/C. Superultra's Favorite Permutation.cpp b/Codeforces Round 988 (Div. 3)/C. Superultra's Favorite Permutation.cpp new file mode 100644 index 0000000..8cfe93c --- /dev/null +++ b/Codeforces Round 988 (Div. 3)/C. Superultra's Favorite Permutation.cpp @@ -0,0 +1,140 @@ +/* Problem URL: https://codeforces.com/contest/2037/problem/C */ + +#include + +using namespace std; + +#define V vector + +#define rmin(a, b) a = min(a, b) +#define rmax(a, b) a = max(a, b) + +#define rep(i, lim) for (size_t i = 0; i < (lim); i++) +#define nrep(i, s, lim) for (size_t i = s; i < (lim); i++) + +#define repv(i, v) for (auto &i : (v)) +#define fillv(v) for (auto &itr_ : (v)) { cin >> itr_; } +#define sortv(v) sort(v.begin(), v.end()) +#define all(v) (v).begin(), (v).end() + +using vi = vector; +using vvi = vector; +using vvvi = vector; +using vvvvi = vector; + +using ll = long long; + +using vl = vector; +using vvl = vector; +using vvvl = vector; +using vvvvl = vector; + +template +auto operator<<(ostream &os, const vector &vec)->ostream& { + os << vec[0]; + for (size_t i = 1; i < vec.size(); i++) { + os << ' ' << vec[i]; + } + os << '\n'; + return os; +} + +template +auto operator>>(istream &is, vector &vec)->istream& { + for (auto &i : vec) { + is >> i; + } + return is; +} + +template +auto operator<<(ostream &os, const vector> &vec)->ostream& { + for (auto &i : vec) { + os << i[0]; + for (size_t j = 1; j < i.size(); j++) { + os << ' ' << i[j]; + } + os << '\n'; + } + return os; +} + +template +auto operator>>(istream &is, vector> &vec)->istream& { + for (auto &i : vec) { + for (auto &j : i) { + is >> j; + } + } + return is; +} + +int main() +{ + ios::sync_with_stdio(false); + cin.tie(nullptr); + + V isprime(1e5 * 4 + 1, true); + isprime[1] = false; + + for (size_t i = 1; i <= (size_t)1e5 * 4; i++) { + if (!isprime[i]) { + continue; + } + + for (size_t j = i * 2; j <= (size_t)1e5 * 4; j += i) { + isprime[j] = false; + } + } + + int t; + cin >> t; + while (t--) { + int n; + cin >> n; + + vi odd; + vi even; + + for (size_t i = 1; i <= n; i++) { + if (i & 1) { + odd.push_back(i); + } else { + even.push_back(i); + } + } + + int i = odd.size() - 1; + int j = 0; + + while (i >= 0) { + j = even.size() - 1; + while (j >= 0 && isprime[odd[i] + even[j]]) { + j--; + } + if (j >= 0) { + break; + } + i--; + } + + if (i < 0) { + cout << "-1\n"; + continue; + } + + for (size_t k = 0; k < odd.size(); k++) { + if (k != i) { + cout << odd[k] << ' '; + } + } + + cout << odd[i] << ' ' << even[j] << ' '; + for (size_t k = 0; k < even.size(); k++) { + if (k != j) { + cout << even[k] << ' '; + } + } + cout << '\n'; + } +} diff --git a/Codeforces Round 988 (Div. 3)/D. Sharky Surfing.cpp b/Codeforces Round 988 (Div. 3)/D. Sharky Surfing.cpp new file mode 100644 index 0000000..16a23ae --- /dev/null +++ b/Codeforces Round 988 (Div. 3)/D. Sharky Surfing.cpp @@ -0,0 +1,125 @@ +/* Problem URL: https://codeforces.com/contest/2037/problem/D */ + +#include + +using namespace std; + +#define V vector + +#define rmin(a, b) a = min(a, b) +#define rmax(a, b) a = max(a, b) + +#define rep(i, lim) for (size_t i = 0; i < (lim); i++) +#define nrep(i, s, lim) for (size_t i = s; i < (lim); i++) + +#define repv(i, v) for (auto &i : (v)) +#define fillv(v) for (auto &itr_ : (v)) { cin >> itr_; } +#define sortv(v) sort(v.begin(), v.end()) +#define all(v) (v).begin(), (v).end() + +using vi = vector; +using vvi = vector; +using vvvi = vector; +using vvvvi = vector; + +using ll = long long; + +using vl = vector; +using vvl = vector; +using vvvl = vector; +using vvvvl = vector; + +template +auto operator<<(ostream &os, const vector &vec)->ostream& { + os << vec[0]; + for (size_t i = 1; i < vec.size(); i++) { + os << ' ' << vec[i]; + } + os << '\n'; + return os; +} + +template +auto operator>>(istream &is, vector &vec)->istream& { + for (auto &i : vec) { + is >> i; + } + return is; +} + +template +auto operator<<(ostream &os, const vector> &vec)->ostream& { + for (auto &i : vec) { + os << i[0]; + for (size_t j = 1; j < i.size(); j++) { + os << ' ' << i[j]; + } + os << '\n'; + } + return os; +} + +template +auto operator>>(istream &is, vector> &vec)->istream& { + for (auto &i : vec) { + for (auto &j : i) { + is >> j; + } + } + return is; +} + +int main() +{ + ios::sync_with_stdio(false); + cin.tie(nullptr); + + int t; + cin >> t; + + while (t--) { + ll n, m, l; + cin >> n >> m >> l; + + V> hurd(n); + for (auto &[l, r] : hurd) { + cin >> l >> r; + } + + V> p(m); + for (auto &[l, r] : p) { + cin >> l >> r; + } + + int ans = 0; + ll k = 1; + + size_t i = 0; + size_t j = 0; + priority_queue pq; + + while (i < hurd.size()) { + while (j < p.size() && p[j].first <= hurd[i].first) { + pq.push(p[j].second); + j++; + } + + while (!pq.empty() && hurd[i].second - hurd[i].first + 1 >= k) { + k += pq.top(); + pq.pop(); + ans++; + } + + if (hurd[i].second - hurd[i].first + 1 >= k) { + break; + } + i++; + } + + if (i < hurd.size()) { + cout << "-1\n"; + continue; + } + cout << ans << '\n'; + } +}