aboutsummaryrefslogtreecommitdiff
path: root/contests/Round859(Div4)/D/main.cpp
diff options
context:
space:
mode:
authoromagdy7 <omar.professional8777@gmail.com>2023-07-24 13:11:33 +0300
committeromagdy7 <omar.professional8777@gmail.com>2023-07-24 13:11:33 +0300
commit6b548332bfc6469756526002971c422f43f86d0a (patch)
tree261fde23f07c3e20cea375030f0c52863b59228c /contests/Round859(Div4)/D/main.cpp
parentcff8cae22ee9c25d193ff976143813f93e658e55 (diff)
downloadcompetitive-programming-6b548332bfc6469756526002971c422f43f86d0a.tar.xz
competitive-programming-6b548332bfc6469756526002971c422f43f86d0a.zip
Removed some empty *.cpp files and Solved some new problems
Diffstat (limited to 'contests/Round859(Div4)/D/main.cpp')
-rwxr-xr-xcontests/Round859(Div4)/D/main.cpp174
1 files changed, 0 insertions, 174 deletions
diff --git a/contests/Round859(Div4)/D/main.cpp b/contests/Round859(Div4)/D/main.cpp
deleted file mode 100755
index 62f9db4..0000000
--- a/contests/Round859(Div4)/D/main.cpp
+++ /dev/null
@@ -1,174 +0,0 @@
-#include<bits/stdc++.h>
-using namespace std;
-
-using ll = long long;
-using pii = pair<int, int>;
-using vpi = vector<pii>;
-using vi = vector<int>;
-using vll = vector<long long>;
-using mpii = map<int, int>;
-using mpll = map<ll, ll>;
-using db = long double;
-
-#define pb push_back
-#define all(x) (x).begin(), (x).end()
-#define rall(x) (x).rbegin(), (x).rend()
-#define lb lower_bound
-#define ub upper_bound
-#define make_unique(x) sort(all((x))); (x).resize(unique(all((x))) - (x).begin())
-#define ceil(a, b) ((a) + (b) - 1) / (b))
-
-const int MOD = (int)1e9 + 7;
-const db PI = acos((db)-1);
-const int dx[4]{1, 0, -1, 0};
-const int dy[4]{0, 1, 0, -1};
-
-template<typename K, typename V> ostream& operator<<(ostream& os, const pair<K, V>& p);
-template<typename T> ostream& operator<<(ostream& os, const vector<T>& vec);
-template<typename K, typename V> ostream& operator<<(ostream& os, const map<K, V>& m);
-template<typename K, typename V> ostream& operator<<(ostream& os, const unordered_map<K, V>& m);
-template<typename T> ostream& operator<<(ostream& os, const set<T>& s);
-template<typename T> ostream& operator<<(ostream& os, const unordered_set<T>& s);
-
-template<typename K, typename V>
-ostream& operator<<(ostream& os, const pair<K, V>& p) {
- os << "(" << p.first << ", " << p.second << ")";
- return os;
-}
-
-template<typename T>
-ostream& operator<<(ostream& os, const vector<T>& vec) {
- os << "{";
- for (size_t i = 0; i < vec.size(); ++i) {
- if (i > 0) os << ", ";
- os << vec[i];
- }
- os << "}";
- return os;
-}
-
-
-template<typename K, typename V>
-ostream& operator<<(ostream& os, const map<K, V>& m) {
- os << "{";
- for (const auto& p : m) {
- os << p.first << ": " << p.second << ", ";
- }
- os << "}";
- return os;
-}
-
-template<typename K, typename V>
-ostream& operator<<(ostream& os, const unordered_map<K, V>& m) {
- os << "{";
- for (const auto& p : m) {
- os << p.first << ": " << p.second << ", ";
- }
- os << "}";
- return os;
-}
-
-template<typename T>
-ostream& operator<<(ostream& os, const set<T>& s) {
- int i = 0;
- os << "{";
- for (const auto& e : s) {
- if (i > 0) os << ", ";
- os << e;
- i++;
- }
- os << "}";
- return os;
-}
-
-template<typename T>
-ostream& operator<<(ostream& os, const unordered_set<T>& s) {
- int i = 0;
- os << "{";
- for (const auto& e : s) {
- if (i > 0) os << ", ";
- os << e;
- i++;
- }
- os << "}";
- return os;
-}
-
-void print() {
- cerr << "\n";
-}
-
-template<typename T, typename... TS>
-void print(T val, TS... vals) {
- cerr << val << " ";
- print(vals...);
-}
-
-
-
-/* stuff you should look for:
- ---------------------------
- * special cases (n=1?)
- * int overflow, array bounds
- * do smth instead of nothing and stay organized
- * WRITE STUFF DOWN
- * DON'T GET STUCK ON ONE APPROACH
- */
-
-void solve() {
- int n, q;
- cin >> n >> q;
- vi v(n);
- vi odd(n);
- for (auto &x : v) {
- cin >> x;
- }
- odd[0] = (v[0] & 1);
- for (int i = 1; i < n; i++) {
- odd[i] = odd[i - 1] + (v[i] & 1);
- }
- int o = odd[odd.size() - 1];
- for (int i = 0; i < q; i++) {
- int l, r, k;
- cin >> l >> r >> k;
- if (k & 1) {
- int oddsInRange = odd[r - 1];
- if (l - 2 >= 0) {
- oddsInRange = odd[r - 1] - odd[l - 2];
- }
- int noElements = r - l + 1;
- int newOdds = o + (noElements - oddsInRange);
- if (newOdds & 1) {
- cout << "YES\n";
- } else {
- cout << "NO\n";
- }
- } else {
- int oddsInRange = odd[r - 1];
- if (l - 2 >= 0) {
- oddsInRange = odd[r - 1] - odd[l - 2];
- }
- int noElements = r - l + 1;
- int newOdds = o - oddsInRange;
- if (newOdds & 1) {
- cout << "YES\n";
- } else {
- cout << "NO\n";
- }
- }
- }
-
-
-}
-
-int main () {
- ios_base::sync_with_stdio(false);
- cin.tie(NULL);
- int tt;
- cin >> tt;
- while(tt--) {
- solve();
- }
-}
-
-