最も強力なブラシの一つとして、ZHXは彼の後輩与えることが必要である
n個のn問題を。
ZHXは考えている私のトンの時間 i番目の問題の難しさがある私は私。彼は美しい方法でこれらの問題を整理したいと考えています。
ZHXシーケンス定義{ I }がある場合{AI}美しいI:下の2つのルールと一致するI
1:1 。。私 a1..ai単調減少または単調増加しています。2:私は。。n個の ai..an単調減少あるいは単調増加しています。
彼は、あなたが問題難易度の順序が美しいであればどのように多くの順列の問題があることを彼に伝えたいと考えています。
ZHXは、答えは非常に巨大であり得ることを知っている、とあなただけの彼に答えモジュール指示する必要がありますのpのpを。
ZHXは考えている私のトンの時間 i番目の問題の難しさがある私は私。彼は美しい方法でこれらの問題を整理したいと考えています。
ZHXシーケンス定義{ I }がある場合{AI}美しいI:下の2つのルールと一致するI
1:1 。。私 a1..ai単調減少または単調増加しています。2:私は。。n個の ai..an単調減少あるいは単調増加しています。
彼は、あなたが問題難易度の順序が美しいであればどのように多くの順列の問題があることを彼に伝えたいと考えています。
ZHXは、答えは非常に巨大であり得ることを知っている、とあなただけの彼に答えモジュール指示する必要がありますのpのpを。
InputMultiplyテストケース(以下1000年 1000)。シークE O Fファイルの終わりとしてEOFを。
それぞれの場合のために、二つの整数があり、N nおよびp個のラインにおけるスペースで区切らpは。(1 ≤ N 、P ≤ 10 18 1≤n、p≤1018) OutputFor各テストケース、出力回答を示す単線。
サンプル入力
2 233 3 5
サンプル出力
2 1
ヒント
前者の場合、両方の配列中の{1、2}と{2 ,. 1}法的である。 後者の場合、配列中ザ{1,2 ,. 3}、{1 ,. 3、2}、{2 ,. 1 ,. 3} 、{2、3、1} 、{3、1、2}、{3、2、1}答えは6 MOD 5 = 1つのであるので、法的であるアイデア:フラグ最小値と最大値(画像を考える)ようにするためあなたは右に左にいくつかの番号を選択する必要があり、すべての記号は、単調になり単調とプログラムナンバー1になることができるようになりますので、答えはsigema、(1-> N-1)である C(i)が(n-1)がパスカルの三角形によってを通して導入しました式2 ^ N-2の用語、ボード(ボードによって高速急速パワーボードとは、同じ目的を持っています)
// の#include <ビット/ STDC ++ H> 使用して名前空間STDを、 #defineっ長い長 LLのN、P。#define maxnn 100100 LLのKSC(-1,11,11-のB、LLのC) { =%のC、 LL ANS = 0 。 一方、(b)は、 { もし、(B&1)ANS =(ANS + A)%のC、 B >> = 1 。=(A + A)%のC、 } 戻りANS。 } のLL KSM(-1,11,11-のB、LLのC) { =%のC、 LL ANS = 1 。 一方、(b)は、 { もし、(B&1)ANS = KSC(ANS、C)%のC、 B >> = 1 。= KSC(、C)%のC、 } 戻りANS。 } int型のmain() { 一方(CIN >> N) { CIN >> P。 printf(" %LLDする\ n "、(KSM(2、N、P) - 2 + P)%のP)。 } }