Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- #define int long long
- #define inf 2e18
- int MOD=1000000007;//998244353;
- const int nn=1000050;
- bool prime[nn]; //array to store precalculated primes till 10^6
- void cal_primes(){memset(prime,true,sizeof(prime)); for(int i=2;i<=sqrt(nn);++i){ if(prime[i]==true){ for(int j=i*i;j<=nn;j+=i){prime[j]=false;}}}}
- void solve(int t)
- {
- int testcases=t;
- while(t--)
- {
- int n,q;cin>>n>>q;
- vector<int>v(n);
- for(int i=0;i<n;i++)
- cin>>v[i];
- while(q--){
- int l,r;cin>>l>>r;
- int count=0,rem=0,sum=0;
- unordered_map<int,int>m;
- m[0]++;
- for(int i=(l-1);i<r;i++){
- sum+=v[i];
- rem=(sum%2);
- if(rem<0)
- rem+=2;
- if(m[rem]){
- count+=m[rem];
- m[rem]++;
- }
- else{
- m[rem]++;
- }
- }
- cout<<count<<endl;
- }
- }
- }
- main()
- {
- auto start=chrono::system_clock::now();
- {
- // #ifndef ONLINE_JUDGE
- // freopen("input.txt","r",stdin);
- // freopen("output.txt","w",stdout);
- // freopen("error.txt","w",stderr);
- // #endif
- ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
- int t=1;
- // cin>>t;
- solve(t);
- }
- auto end=chrono::system_clock::now();
- chrono::duration<double> elapsed=end-start;
- // cout<<endl<<"Time taken: "<<elapsed.count()<<" sec";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement