#H. 刘桑のSakura(快速版)

    传统题 4000ms 256MiB

刘桑のSakura(快速版)

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

刘桑上班又双叒叕迟到了!

刘桑被学长罚抄快速幂的板子,刘桑有点不理解,快速是多快?

如果你能帮助刘桑快速解决下面问题,那么刘桑就会请你看故乡のSakura。

img

//快读

long long read() {
    long long x=0,f=1;
    char c=getchar();
    while(c<'0'||c>'9'){if(c=='-') f=-1;c=getchar();}
    while(c>='0'&&c<='9') x=x*10+c-'0',c=getchar();
    return x*f;
}

//使用方式:
//将scanf("%d",&num); 更改为↓
num = read();
// 可快速读入一个数,并赋给num

第一行给出两个数n,kn,k ,第二行给出nn个数a1,a2,,ana_1,a_2,……,a_n,计算 a1k×a2k××anka_1^k×a_2^k×……×a_n^k 的值并输出。

注意:最终结果可能很大,请对998244353取模,输入规模较大,请使用合适的输入方式

输入格式

第一行给出两个数n,k(1<=n,k<=1e7)n,k,(1<= n,k<=1e7) ,第二行给出nn个数a1,a2,,an(1<=ai<=1e9)a_1,a_2,……,a_n,(1<=a_i<=1e9)

输出格式

输出一个整数,对998244353取模。

样例

样例输入1

3 2
1 2 3

样例输出1

36

样例输入2

5 666
12 34 56 78 90

样例输出2

348277786

数据范围与提示

如果你的代码提交后获得了 Time Limit Exceeded 说明你的代码不够快!

10.6训练赛

未参加
状态
已结束
规则
ACM/ICPC
题目
8
开始于
2022-10-6 13:15
结束于
2022-10-6 18:15
持续时间
5 小时
主持人
参赛人数
70