Skip to content

Instantly share code, notes, and snippets.

@loloicci
Created April 20, 2019 17:21
Show Gist options
  • Save loloicci/f9d321c126bf60029e392cb2731b40b1 to your computer and use it in GitHub Desktop.
Save loloicci/f9d321c126bf60029e392cb2731b40b1 to your computer and use it in GitHub Desktop.
ABC 2019/04/20
import strutils, sequtils
let
abc = stdin.readline.split({' '}).map(parseInt)
a = abc[0]
b = abc[1]
c = abc[2]
if (a < c and c < b) or (b < c and c < a):
echo "Yes"
else:
echo "No"
import strutils, sequtils
let
n = stdin.readline.parseInt
s = stdin.readline
k = stdin.readline.parseInt
sk = s[k - 1]
var
ans = ""
for c in s:
if sk == c:
ans = ans & c
else:
ans = ans & "*"
echo ans
import strutils, sequtils
let
n = stdin.readline.parseInt
s = stdin.readline
var
sp = 0
dt = 0
rds = 0
rdd = 0
for c in s:
if c == '.':
inc(dt)
else:
inc(sp)
var mn = dt
for c in s:
if c == '.':
inc(rdd)
else:
inc(rds)
let nw = dt - rdd + rds
if mn > nw:
mn = nw
echo mn
import strutils, sequtils, math, tables
proc powMod(n, m, by: int): int =
if m == 0:
return 1
else:
return (n * powMod(n, (m - 1), by)) mod by
let n = stdin.readline.parseInt
var
dp, dpn: Table[int, Table[int, int]]
sm = 0
sa: seq[int] = @[]
ret = 3.powMod(n, 998244353)
#echo ret
dp = initTable[int, Table[int, int]]()
dpn = initTable[int, Table[int, int]]()
dp[0] = initTable[int, int]()
dpn[0] = initTable[int, int]()
dp[0][0] = 1
dpn[0][0] = 1
for i in 1..n:
let a = stdin.readline.parseInt
sa.add(a)
sm = sm + a
dp[i] = initTable[int, int]()
dpn[i] = initTable[int, int]()
for k in dp[i - 1].keys:
# for all
dp[i][k] = (dp[i - 1][k] * 2 + (if dp[i].hasKey(k): dp[i][k] else: 0)) mod 998244353
dp[i][k + a] = (dp[i - 1][k] + (if dp[i].hasKey(k + a): dp[i][k + a] else: 0)) mod 998244353
#echo "----"
#echo ret
#echo sm
#echo dp[n]
#echo dpn[n]
for k in dp[n].keys:
if k * 2 >= sm:
ret = (((ret - dp[n][k] * 3) mod 998244353) + 998244353) mod 998244353
if k * 2 == sm:
for i in 1..n:
for ik in dpn[i - 1].keys:
if ik * 2 > sm:
continue
let a = sa[i - 1]
# for not
dpn[i][ik] = (dpn[i - 1][ik] + (if dpn[i].hasKey(ik): dpn[i][ik] else: 0)) mod 998244353
dpn[i][ik + a] = (dpn[i - 1][ik] + (if dpn[i].hasKey(ik + a): dpn[i][ik + a] else: 0)) mod 998244353
ret = (ret + dpn[n][k] * 3) mod 998244353
echo ret
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment