Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<string.h>
- #include<vector>
- #include<algorithm>
- using namespace std;
- #define MAXN 200000
- int numarray[MAXN];
- vector<long long> sums;
- int main()
- {
- int T, N,Q, i, l,r;
- long long s;
- cin>>T;
- for(int t=0;t<T;++t)
- {
- cin>>N>>Q;
- // reset array
- memset(numarray, 0, sizeof(numarray));
- // input the array
- for(i=0;i<N;++i)
- {
- cin>>numarray[i];
- // add subset sums
- s = 0;
- for(l=0;l<=i;++l)
- {
- s += numarray[i-l];
- sums.push_back(s);
- }
- }
- sort(sums.begin(),sums.end());
- cout<<"Case #"<<t<<": "<<endl;
- for(i=0;i<Q;++i)
- {
- // get final arrray l-r range
- cin>>l>>r;
- // swap to make l<r
- if(l>r){int t=l;l=r;r=t;}
- // calc sum
- s=0;
- for(int j=l;j<=r;++j)
- {
- s+=sums.at(j);
- }
- cout<<s<<endl;
- }
- }
- }
Add Comment
Please, Sign In to add comment