Решение задачи Камни Курияма Мираи с Codeforces

Без пояснения   Просмотров: 28


Курияма Мираи убила много чудовищ и получила в награду много (а именно n) камней. Все камни Курияма Мираи пронумерованы от 1 до n. Цена i-го камня равняется vi. Курияма Мираи хочет узнать некоторую информацию о своих камнях, с этой целью она задает вам вопросы. Каждый вопрос имеет один из следующих видов:

Она называет вам два числа, l и r (1 ≤ l ≤ r ≤ n), а вы должны сказать ей, чему равна сумма .
Пусть ui равняется цене i-го по дешевизне камня (цена, которая будет на i-ом месте, если расположить все цены камней в порядке неубывания). На этот раз она называет вам два числа, l и r (1 ≤ l ≤ r ≤ n), а вы должны сказать ей, чему равна сумма .
Вам нужно ответить правильно на ее вопросы, или Курияма Мираи скажет «fuyukai desu» (яп. неприятно) и расстроится.

Код

#include<bits/stdc++.h>
using namespace std;
long long n,a[200000],b[200000],k,m,l,r;
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
		b[i]=a[i];
		a[i]+=a[i-1];
	}
	sort(b+1,b+n+1);
	for(int i=1;i<=n;i++)
		b[i]+=b[i-1];
	cin>>m;
	for(int i=0;i<m;i++)
	{
		cin>>k>>l>>r;
		if(k-1)
			cout<<b[r]-b[l-1]<<endl;
		else
			cout<<a[r]-a[l-1]<<endl;
	}
	return 0;
}

         

Администратор Photo Автор: Администратор



Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться