CF633H.Fibonacci-ish II

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Yash is finally tired of computing the length of the longest Fibonacci-ish sequence. He now plays around with more complex things such as Fibonacci-ish potentials.

Fibonacci-ish potential of an array aia_{i} is computed as follows:

  1. Remove all elements jj if there exists i<j such that ai=aja_{i}=a_{j} .
  2. Sort the remaining elements in ascending order, i.e. a_{1}<a_{2}<...<a_{n} .
  3. Compute the potential as P(a)=a1F1+a2F2+...+anFnP(a)=a_{1}·F_{1}+a_{2}·F_{2}+...+a_{n}·F_{n} , where FiF_{i} is the ii -th Fibonacci number (see notes for clarification).

You are given an array aia_{i} of length nn and qq ranges from ljl_{j} to rjr_{j} . For each range jj you have to compute the Fibonacci-ish potential of the array bib_{i} , composed using all elements of aia_{i} from ljl_{j} to rjr_{j} inclusive. Find these potentials modulo mm .

输入格式

The first line of the input contains integers of nn and mm ( 1<=n,m<=300001<=n,m<=30000 ) — the length of the initial array and the modulo, respectively.

The next line contains nn integers aia_{i} ( 0<=ai<=1090<=a_{i}<=10^{9} ) — elements of the array.

Then follow the number of ranges qq ( 1<=q<=300001<=q<=30000 ).

Last qq lines contain pairs of indices lil_{i} and rir_{i} ( 1<=li<=ri<=n1<=l_{i}<=r_{i}<=n ) — ranges to compute Fibonacci-ish potentials.

输出格式

Print qq lines, ii -th of them must contain the Fibonacci-ish potential of the ii -th range modulo mm .

输入输出样例

  • 输入#1

    5 10
    2 1 2 1 2
    2
    2 4
    4 5
    

    输出#1

    3
    3
    

说明/提示

For the purpose of this problem define Fibonacci numbers as follows:

  1. F1=F2=1F_{1}=F_{2}=1 .
  2. Fn=Fn1+Fn2F_{n}=F_{n-1}+F_{n-2} for each n>2 .

In the first query, the subarray [1,2,1] can be formed using the minimal set {1,2}. Thus, the potential of this subarray is 1*1+2*1=3.

首页