51ä½, 301ç¹
ãã¤ãã®ABCãããé£ããæãã
A: プロコン - AtCoder Beginner Contest #017 | AtCoder
å²åãããã¦è¶³ãã ã
åºåãæ´æ°ãªã®ã«ãæ¥ãã§ãã¦æµ®åå°æ°ç¹ã§è¨ç®ãã¦.0ãåºåãã¦ãã¾ã£ã¦1WA
# -*- coding: utf-8 -*- import math,string,itertools,fractions,heapq,collections,re,array,bisect def ln(): return map(int, raw_input().strip().split()) a = ln() b = ln() c = ln() print int(a[0] * a[1] / 10.0 + b[0] * b[1] / 10.0 + c[0] * c[1] / 10.0)
B: choku語 - AtCoder Beginner Contest #017 | AtCoder
ä¸ããããæååããch, o, k, uã®ããããã®0å以ä¸ã®ç¹°ãè¿ããã©ãããå¤å®ãã
解説çæ¾éã®ã³ã¡ã³ãã§æµãã¦ãæ£è¦è¡¨ç¾ã使ãã®ã¯é ããæ¹æ³ã ã¨æã£ã
# -*- coding: utf-8 -*- import math,string,itertools,fractions,heapq,collections,re,array,bisect def s(): return raw_input().strip() a = s() pos = 0 key = set('oku') while pos < len(a): temp = a[pos:pos+2] if temp.startswith('ch'): pos += 2 elif temp[0] in key: pos += 1 else: print 'NO' break else: print 'YES'
C: ハイスコア - AtCoder Beginner Contest #017 | AtCoder
é£ç¶ããç¯å²ã¨ç¹æ°ã®ãã¢ãè¤æ°ä¸ãããã
å
¨ä½ãè¦ããªãããã«ãã¢ãé¸ãã æã®æ大å¤ãçãã
1ç®æè¦ããªãå ´æãé¸ãã§ããã®å·¦å³ã®ç´¯ç©åãæ大ã®ã¨ãããé¸ã¶
# -*- coding: utf-8 -*- import math,string,itertools,fractions,heapq,collections,re,array,bisect def ln(): return map(int, raw_input().strip().split()) N, M = ln() t = [] for i in xrange(N): lt, rt, st = ln() t.append((lt, rt, st)) score1 = [0] * (M + 1) for l, r, s in t: score1[r] += s temp = 0 for i in xrange(M + 1): score1[i] += temp temp = score1[i] score2 = [0] * (M + 1) for l, r, s in t: score2[l] += s temp = 0 for i in xrange(M, -1, -1): score2[i] += temp temp = score2[i] result = -1 for i in xrange(1, M + 1): score = 0 if i - 1 > 0: score += score1[i - 1] if i + 1 < M + 1: score += score2[i + 1] if score > result: result = score print result
D: サプリメント - AtCoder Beginner Contest #017 | AtCoder
\(N\)åã®ãµããªã¡ã³ããé çªã¨ç¨®é¡ä»ãã§ä¸ãããã
ãµããªã¡ã³ããé çªéãã«é£ã¹ã¦è¡ãæã1æ¥ã«åã種é¡ã®ãµããªã¡ã³ããæ大1ã¤ãã¤é£ã¹ããã¨ããã¨ãä½éãã®é£ã¹æ¹ããããçãã
å
¬å¼ã®è§£èª¬ãããããããã£ã
\(i\)種é¡ã¾ã§ã®ãµããªã¡ã³ããé£ã¹ãã¨ãã®é£ã¹æ¹ã¯ããã®\(i\)ããåã®åã種é¡ã®ãµããªã¡ã³ãã2ã¤ä»¥ä¸å«ã¾ãªãç¯å²ã§ã®é£ã¹æ¹ã®æ°ã®åããè¨ç®ã§ãã
ç¯å²ã¯ã©ãã©ãé²ãã§ããã®ã§ãåã¯ãããã¨ãæ³ã§å¹ççã«è¨ç®ã§ãã
# -*- coding: utf-8 -*- import math,string,itertools,fractions,heapq,collections,re,array,bisect def n(): return int(raw_input()) def ln(): return map(int, raw_input().strip().split()) N, M = ln() F = [] for i in xrange(N): F.append(n()) score = [0] * (N + 1) score[0] = 1 cur = 0 sum = 1 count = [0] * (M + 1) MOD = 1000000007 for i in xrange(N): count[F[i]] += 1 while count[F[i]] > 1: count[F[cur]] -= 1 sum += MOD - score[cur] sum %= MOD cur += 1 score[i + 1] = sum sum += score[i + 1] sum %= MOD print score[-1]