Eugeny has array a?=?a1,?a2,?...,?an, consisting of n integers. Each integer ai equals to -1, or to 1. Also, he has m queries:
- Query number i is given as a pair of integers li, ri (1?≤?li?≤?ri?≤?n).
- The response to the query will be integer 1, if the elements of array a can be rearranged so as the sum ali?+?ali?+?1?+?...?+?ari?=?0, otherwise the response to the query will be integer 0.
Help Eugeny, answer all his queries.
Input
The first line contains integers n and m (1?≤?n,?m?≤?2·105). The second line contains n integers a1,?a2,?...,?an (ai?=?-1,?1). Next m lines contain Eugene's queries. The i-th line contains integers li,?ri (1?≤?li?≤?ri?≤?n).
Output
Print m integers — the responses to Eugene's queries in the order they occur in the input.
Examples
Input2 3Output
1 -1
1 1
1 2
2 2
0Input
1
0
5 5Output
-1 1 1 1 -1
1 1
2 3
3 5
2 5
1 5
0
1
0
1
0
題意:問這一組數重排后,能不能使區間[l,r]的和為0
這題就在卡輸入
代碼:
#include<iostream> using namespace std; int main(){ ios::sync_with_stdio(false);//c++加速陳述句 int n,m; cin>>n>>m; int cnt1=0,cnt2=0; while(n--){ int a; cin>>a; if(a>0) cnt1++; else cnt2++; } int minn=min(cnt1,cnt2); while(m--){ int l,r; cin>>l>>r; if((r-l+1)%2==0&&(r-l+1)/2<=minn) cout<<"1"<<endl; else cout<<"0"<<endl; } return 0; }
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/109084.html
標籤:其他
