結果
| 問題 | No.1299 Random Array Score | 
| コンテスト | |
| ユーザー |  slyly1373 | 
| 提出日時 | 2020-11-27 22:36:20 | 
| 言語 | PyPy3 (7.3.15) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 91 ms / 2,000 ms | 
| コード長 | 2,383 bytes | 
| コンパイル時間 | 270 ms | 
| コンパイル使用メモリ | 82,364 KB | 
| 実行使用メモリ | 100,056 KB | 
| 最終ジャッジ日時 | 2024-07-26 18:55:15 | 
| 合計ジャッジ時間 | 3,823 ms | 
| ジャッジサーバーID (参考情報) | judge1 / judge4 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 3 | 
| other | AC * 34 | 
ソースコード
# coding: UTF-8
# <<<基本的なimport系>>>
import sys
from sys import stdin
input = stdin.readline
import math
import bisect
# <<<定数系>>>
# ここは問題によって法を変える
# MOD = 10**9+7
MOD = 998244353
nil = None
INF = 10**18
# <<<配列系>>>
# 番号a~b配列のスライスは、l[a:b+1]
# 1次元配列作成、値xをn個
def NewArray1(n,x):
    return [x]*n
# 2次元配列作成、値xをh行w列
def NewArray2(h,w,x):
    return [[x]*w for i in range(h)]
# 2次元配列aryのk番目で昇順ソート
def sort2up(ary,k):
    return sorted(ary, key=lambda x: x[k])
# 2次元配列aryのk番目で降順ソート
def sort2down(ary,k):
    return sorted(ary, reverse=True, key=lambda x: x[k])
# <<<二分探索系(必ずソートしてから使え!!!)>>>
# 配列aryにおけるx<aとなる要素xの個数:パターン1
def bsearch1(ary,a):
    return bisect.bisect_left(ary,a)
# 配列aryにおけるx<=aとなる要素xの個数:パターン2
def bsearch2(ary,a):
    return bisect.bisect_right(ary,a)
# 配列aryにおけるx>aとなる要素xの個数:パターン3
def bsearch3(ary,a):
    return len(ary)-bisect.bisect_right(ary,a)
# 配列aryにおけるx>=aとなる要素xの個数:パターン4
def bsearch4(ary,a):
    return len(ary)-bisect.bisect_left(ary,a)
# <<<数学系>>>
# 繰り返し二乗法
# ---> pow(底,累乗,MOD)の組み込み関数を使え!
# 組み合わせ(nCr)(MODをとっている)
def nCr(n,r):
    num = 1
    fact = 1
    for i in range(r):
        num = num * (n-i) % MOD
        fact = fact * (i+1) % MOD
    return num * pow(fact, MOD-2, MOD) % MOD
# 重複組み合わせ(nHr)(MODをとっている)
def nHr(n,r): # n個の異なるものからr個とってくる場合の数
    return nCr(n+r-1,r)
# <<<累積和>>>
'''
# 配列aの累積和がs
s = NewArray1(len(a)+1,nil)
s[0] = 0
for i in range(len(a)):
    s[i+1] = s[i] + a[i]
# AからBまでの和は s[B+1]-s[A]
'''
# <<<入出力系>>>
# 1行1数字
# int(input())
# 1行n数字(区切りあり)
# map(int, input().split())
# 1行n数字(リストに格納)
# list(map(int, input().split()))
# n行1数字(リストに格納)
# [int(input()) for _ in range(n)]
def p(x):
    print(x)
###
n, k = map(int, input().split())
a = list(map(int, input().split()))
sum = sum(a)
v = (sum*pow(2,k,MOD))%MOD
p(v)
            
            
            
        