Odd or Even
ishan
c_cpp
3 months ago
1.3 kB
3
Indexable
#include <bits/stdc++.h> using namespace std; #define int long long #define endl '\n' signed main() { ios::sync_with_stdio(false); cin.tie(NULL); int test_case; cin >> test_case; while (test_case--) { int n , q; cin >> n >> q; vector < int > v(n) ; for(auto &i : v) { cin >> i ; } int initial = 0 ; int sum = accumulate(v.begin() , v.end() , initial) ; vector < int > prefix_sum ; int presum = 0 ; for(int i = 0 ; i < n ; i ++) { presum += v[i] ; prefix_sum.emplace_back(presum) ; } for(int i = 0 ; i < q ; i ++) { int l , r , k ; cin >> l >> r >> k ; int add = k * (r-l+1) , temp ; if(l == 1) { temp = prefix_sum[r-1] ; } else { temp = prefix_sum[r-1] - prefix_sum[l-2] ; } if((sum - temp + add) % 2 == 1) { cout << "YES" ; } else { cout << "NO" ; } cout << endl ; } } }
Editor is loading...
Leave a Comment