#include<bits/stdc++.h>
using namespace std;
// Count number of subarrays having sum <= x
long long p(long long b[], int n, long long x)
{
long long sum = 0;
long long c = 0;
int j = 0;
for(int i = 0; i < n; i++)
{
// Add current element
sum += b[i];
// Remove elements from left if sum becomes > x
while(sum > x && j <= i)
{
sum -= b[j];
j++;
}
// Number of valid subarrays ending at i
c += (i - j + 1);
}
return c;
}
// Find sum of all subarrays having sum <= x
long long f(long long b[], int n, long long x)
{
long long sum = 0;
long long t = 0;
int j = 0;
for(int i = 0; i < n; i++)
{
// Add current element
sum += b[i];
// Keep the subarray sum <= x
while(sum > x && j <= i)
{
sum -= b[j];
j++;
}
// Add the current valid sum
t += sum;
}
return t;
}
int main()
{
int n;
cin>>n;
// G = required position in sorted subarray sums
long long G;
cin>>G;
long long b[n];
// low = smallest possible subarray sum
// high = largest possible subarray sum
long long low = 1e18;
long long high = 0;
for(int i=0; i<n; i++)
{
cin>>b[i];
if(b[i] < low)
{
low = b[i];
}
high += b[i];
}
// Binary search to find the first number
// where number of subarrays with sum <= number is >= G
long long l = low;
long long r = high;
while(l < r)
{
long long mid = l + (r-l)/2;
// Count subarrays having sum <= mid
long long c = p(b,n,mid);
if(c >= G)
{
// Answer can be mid or smaller
r = mid;
}
else
{
// Need a bigger value
l = mid + 1;
}
}
// First value where count >= G
long long i = l;
// Count subarrays having sum <= i
long long c = p(b,n,i);
// Sum of all subarrays having sum <= i
long long t = f(b,n,i);
// Remove extra subarrays
// so that exactly G smallest subarray sums remain
t = t - i*(c-G);
cout<<t<<endl;
// Q queries
// Find sum from index Li to Ri
// Both indices are inclusive
int Q;
cin>>Q;
// Prefix sum array
long long prefix[n+1];
prefix[0] = 0;
for(int i=0; i<n; i++)
{
prefix[i+1] = prefix[i] + b[i];
}
// Answer each query in O(1)
for(int q=1; q<=Q; q++)
{
int Li, Ri;
cin>>Li>>Ri;
// Sum from Li to Ri
long long ans = prefix[Ri+1] - prefix[Li];
cout<<ans<<endl;
}
return 0;
}
/*
Input
3
4
1 2 3
3
0 1
1 2
0 2
Explanation:
Array:
[1, 2, 3]
All subarray sums:
1
2
3
3
5
6
G = 4, so the 4th smallest subarray sum is 3.
For queries:
0 1 → 1 + 2 = 3
1 2 → 2 + 3 = 5
0 2 → 1 + 2 + 3 = 6
Output
9
3
5
6
*/
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCi8vIENvdW50IG51bWJlciBvZiBzdWJhcnJheXMgaGF2aW5nIHN1bSA8PSB4CmxvbmcgbG9uZyBwKGxvbmcgbG9uZyBiW10sIGludCBuLCBsb25nIGxvbmcgeCkKewogICAgbG9uZyBsb25nIHN1bSA9IDA7CiAgICBsb25nIGxvbmcgYyA9IDA7CgogICAgaW50IGogPSAwOwoKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBuOyBpKyspCiAgICB7CiAgICAgICAgLy8gQWRkIGN1cnJlbnQgZWxlbWVudAogICAgICAgIHN1bSArPSBiW2ldOwoKICAgICAgICAvLyBSZW1vdmUgZWxlbWVudHMgZnJvbSBsZWZ0IGlmIHN1bSBiZWNvbWVzID4geAogICAgICAgIHdoaWxlKHN1bSA+IHggJiYgaiA8PSBpKQogICAgICAgIHsKICAgICAgICAgICAgc3VtIC09IGJbal07CiAgICAgICAgICAgIGorKzsKICAgICAgICB9CgogICAgICAgIC8vIE51bWJlciBvZiB2YWxpZCBzdWJhcnJheXMgZW5kaW5nIGF0IGkKICAgICAgICBjICs9IChpIC0gaiArIDEpOwogICAgfQoKICAgIHJldHVybiBjOwp9CgovLyBGaW5kIHN1bSBvZiBhbGwgc3ViYXJyYXlzIGhhdmluZyBzdW0gPD0geApsb25nIGxvbmcgZihsb25nIGxvbmcgYltdLCBpbnQgbiwgbG9uZyBsb25nIHgpCnsKICAgIGxvbmcgbG9uZyBzdW0gPSAwOwogICAgbG9uZyBsb25nIHQgPSAwOwoKICAgIGludCBqID0gMDsKCiAgICBmb3IoaW50IGkgPSAwOyBpIDwgbjsgaSsrKQogICAgewogICAgICAgIC8vIEFkZCBjdXJyZW50IGVsZW1lbnQKICAgICAgICBzdW0gKz0gYltpXTsKCiAgICAgICAgLy8gS2VlcCB0aGUgc3ViYXJyYXkgc3VtIDw9IHgKICAgICAgICB3aGlsZShzdW0gPiB4ICYmIGogPD0gaSkKICAgICAgICB7CiAgICAgICAgICAgIHN1bSAtPSBiW2pdOwogICAgICAgICAgICBqKys7CiAgICAgICAgfQoKICAgICAgICAvLyBBZGQgdGhlIGN1cnJlbnQgdmFsaWQgc3VtCiAgICAgICAgdCArPSBzdW07CiAgICB9CgogICAgcmV0dXJuIHQ7Cn0KCmludCBtYWluKCkKewogICAgaW50IG47CiAgICBjaW4+Pm47CgogICAgLy8gRyA9IHJlcXVpcmVkIHBvc2l0aW9uIGluIHNvcnRlZCBzdWJhcnJheSBzdW1zCiAgICBsb25nIGxvbmcgRzsKICAgIGNpbj4+RzsKCiAgICBsb25nIGxvbmcgYltuXTsKCiAgICAvLyBsb3cgPSBzbWFsbGVzdCBwb3NzaWJsZSBzdWJhcnJheSBzdW0KICAgIC8vIGhpZ2ggPSBsYXJnZXN0IHBvc3NpYmxlIHN1YmFycmF5IHN1bQogICAgbG9uZyBsb25nIGxvdyA9IDFlMTg7CiAgICBsb25nIGxvbmcgaGlnaCA9IDA7CgogICAgZm9yKGludCBpPTA7IGk8bjsgaSsrKQogICAgewogICAgICAgIGNpbj4+YltpXTsKCiAgICAgICAgaWYoYltpXSA8IGxvdykKICAgICAgICB7CiAgICAgICAgICAgIGxvdyA9IGJbaV07CiAgICAgICAgfQoKICAgICAgICBoaWdoICs9IGJbaV07CiAgICB9CgogICAgLy8gQmluYXJ5IHNlYXJjaCB0byBmaW5kIHRoZSBmaXJzdCBudW1iZXIKICAgIC8vIHdoZXJlIG51bWJlciBvZiBzdWJhcnJheXMgd2l0aCBzdW0gPD0gbnVtYmVyIGlzID49IEcKCiAgICBsb25nIGxvbmcgbCA9IGxvdzsKICAgIGxvbmcgbG9uZyByID0gaGlnaDsKCiAgICB3aGlsZShsIDwgcikKICAgIHsKICAgICAgICBsb25nIGxvbmcgbWlkID0gbCArIChyLWwpLzI7CgogICAgICAgIC8vIENvdW50IHN1YmFycmF5cyBoYXZpbmcgc3VtIDw9IG1pZAogICAgICAgIGxvbmcgbG9uZyBjID0gcChiLG4sbWlkKTsKCiAgICAgICAgaWYoYyA+PSBHKQogICAgICAgIHsKICAgICAgICAgICAgLy8gQW5zd2VyIGNhbiBiZSBtaWQgb3Igc21hbGxlcgogICAgICAgICAgICByID0gbWlkOwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICAvLyBOZWVkIGEgYmlnZ2VyIHZhbHVlCiAgICAgICAgICAgIGwgPSBtaWQgKyAxOwogICAgICAgIH0KICAgIH0KCiAgICAvLyBGaXJzdCB2YWx1ZSB3aGVyZSBjb3VudCA+PSBHCiAgICBsb25nIGxvbmcgaSA9IGw7CgogICAgLy8gQ291bnQgc3ViYXJyYXlzIGhhdmluZyBzdW0gPD0gaQogICAgbG9uZyBsb25nIGMgPSBwKGIsbixpKTsKCiAgICAvLyBTdW0gb2YgYWxsIHN1YmFycmF5cyBoYXZpbmcgc3VtIDw9IGkKICAgIGxvbmcgbG9uZyB0ID0gZihiLG4saSk7CgogICAgLy8gUmVtb3ZlIGV4dHJhIHN1YmFycmF5cwogICAgLy8gc28gdGhhdCBleGFjdGx5IEcgc21hbGxlc3Qgc3ViYXJyYXkgc3VtcyByZW1haW4KICAgIHQgPSB0IC0gaSooYy1HKTsKCiAgICBjb3V0PDx0PDxlbmRsOwoKCiAgICAvLyBRIHF1ZXJpZXMKICAgIC8vIEZpbmQgc3VtIGZyb20gaW5kZXggTGkgdG8gUmkKICAgIC8vIEJvdGggaW5kaWNlcyBhcmUgaW5jbHVzaXZlCgogICAgaW50IFE7CiAgICBjaW4+PlE7CgogICAgLy8gUHJlZml4IHN1bSBhcnJheQogICAgbG9uZyBsb25nIHByZWZpeFtuKzFdOwoKICAgIHByZWZpeFswXSA9IDA7CgogICAgZm9yKGludCBpPTA7IGk8bjsgaSsrKQogICAgewogICAgICAgIHByZWZpeFtpKzFdID0gcHJlZml4W2ldICsgYltpXTsKICAgIH0KCiAgICAvLyBBbnN3ZXIgZWFjaCBxdWVyeSBpbiBPKDEpCiAgICBmb3IoaW50IHE9MTsgcTw9UTsgcSsrKQogICAgewogICAgICAgIGludCBMaSwgUmk7CiAgICAgICAgY2luPj5MaT4+Umk7CgogICAgICAgIC8vIFN1bSBmcm9tIExpIHRvIFJpCiAgICAgICAgbG9uZyBsb25nIGFucyA9IHByZWZpeFtSaSsxXSAtIHByZWZpeFtMaV07CgogICAgICAgIGNvdXQ8PGFuczw8ZW5kbDsKICAgIH0KCiAgICByZXR1cm4gMDsKfQoKCgovKgpJbnB1dAoKMwo0CjEgMiAzCjMKMCAxCjEgMgowIDIKCkV4cGxhbmF0aW9uOgoKQXJyYXk6CgpbMSwgMiwgM10KCkFsbCBzdWJhcnJheSBzdW1zOgoKMQoyCjMKMwo1CjYKCkcgPSA0LCBzbyB0aGUgNHRoIHNtYWxsZXN0IHN1YmFycmF5IHN1bSBpcyAzLgoKRm9yIHF1ZXJpZXM6CgowIDEg4oaSIDEgKyAyID0gMwoxIDIg4oaSIDIgKyAzID0gNQowIDIg4oaSIDEgKyAyICsgMyA9IDYKCk91dHB1dAoKOQozCjUKNgoqLw==