码迷,mamicode.com
首页 > 其他好文 > 详细

百度之星 Cycle Cocycle

时间:2014-05-26 01:21:26      阅读:267      评论:0      收藏:0      [点我收藏+]

标签:des   style   class   blog   c   code   

B. Kuriyama Mirai‘s Stones

 

Kuriyama Mirai has killed many monsters and got many (namely n) stones. She numbers the stones from 1 to n. The cost of the i-th stone is vi. Kuriyama Mirai wants to know something about these stones so she will ask you two kinds of questions:

  1. She will tell you two numbers, l and r (1?≤?l?≤?r?≤?n), and you should tell her bubuko.com,布布扣.
  2. Let ui be the cost of the i-th cheapest stone (the cost that will be on the i-th place if we arrange all the stone costs in non-decreasing order). This time she will tell you two numbers, l and r (1?≤?l?≤?r?≤?n), and you should tell her bubuko.com,布布扣.

For every question you should give the correct answer, or Kuriyama Mirai will say "fuyukai desu" and then become unhappy.

Input

The first line contains an integer n (1?≤?n?≤?105). The second line contains n integers: v1,?v2,?...,?vn (1?≤?vi?≤?109) — costs of the stones.

The third line contains an integer m (1?≤?m?≤?105) — the number of Kuriyama Mirai‘s questions. Then follow m lines, each line contains three integers type, l and r (1?≤?l?≤?r?≤?n; 1?≤?type?≤?2), describing a question. If type equal to 1, then you should output the answer for the first question, else you should output the answer for the second one.

Output

Print m lines. Each line must contain an integer — the answer to Kuriyama Mirai‘s question. Print the answers to the questions in the order of input.

Sample test(s)
Input
6
6 4 2 7 2 7
3
2 3 6
1 3 4
1 1 6
Output
24
9
28
Input
4
5 5 2 3
10
1 2 4
2 1 4
1 1 1
2 1 4
2 1 2
1 1 1
1 3 3
1 1 3
1 4 4
1 2 2
Output
10
15
5
15
5
5
2
12
3
5
Note

Please note that the answers to the questions may overflow 32-bit integer type.

 

【题目大意】

有一些石头排成一行,每个石头都有自己的权值,现在有两种询问:

一种是1开头的:询问原来的石头顺序下,第i到第j颗石头的的权值只和;

一种是2开头的,询问所有石头按照大小顺序排列以后,第i到第j颗石头的权值之和;

这题乍看很像树状数组,但是并不是树状数组,直接模拟即可.

 

bubuko.com,布布扣
#include<cstdio>
#include<cstring>
#include<algorithm>
#define MAX 100100
using namespace std;

__int64 m,a,b,c;
__int64 n,i,sum;
__int64 num1[MAX];
__int64 num2[MAX];
__int64 sum1[MAX];
__int64 sum2[MAX];

int main()
{
    sum=0;
    scanf("%I64d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%I64d",&num1[i]);
        sum+=num1[i];
        sum1[i]=sum;
    }
    memcpy(num2,num1,sizeof(num1));
    sort(num2,num2+n);
    sum=0;
    for(i=0;i<n;i++)
    {
        sum+=num2[i];
        sum2[i]=sum;
    }
    scanf("%I64d",&m);
    while(m--)
    {
        scanf("%I64d%I64d%I64d",&a,&b,&c);
        if(a==1)
            printf("%I64d\n",sum1[c-1]-sum1[b-2]);
        else
            printf("%I64d\n",sum2[c-1]-sum2[b-2]);
    }
    return 0;
}
bubuko.com,布布扣

 

 

百度之星 Cycle Cocycle,布布扣,bubuko.com

百度之星 Cycle Cocycle

标签:des   style   class   blog   c   code   

原文地址:http://www.cnblogs.com/acmer-jsb/p/3749778.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!