Odd or Even
ishan
c_cpp
8 months ago
1.3 kB
6
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