月曜日, 6月 16, 2025
- Advertisment -
ホームニューステックニュースABC410振り返り #Python - Qiita

ABC410振り返り #Python – Qiita



ABC410振り返り #Python - Qiita

前回の振り返り

今日はABC開催日だったので参加結果を振り返る

今週はA,Bの2完(0ペナ)

条件満たすのを数えるだけだが
普通のfor文じゃなくてsumと内包表記でまとめちゃった

ソースコード

main.py

from bisect import bisect_left, bisect_right, insort_left, insort_right
from collections import defaultdict, Counter, deque
from functools import reduce, lru_cache
from itertools import product, accumulate, groupby, combinations
import sys
import os
def rI(): return int(sys.stdin.readline().rstrip())
def rLI(): return list(map(int,sys.stdin.readline().rstrip().split()))
def rI1(): return (int(sys.stdin.readline().rstrip())-1)
def rLI1(): return list(map(lambda a:int(a)-1,sys.stdin.readline().rstrip().split()))
def rS(): return sys.stdin.readline().rstrip()
def rLS(): return list(sys.stdin.readline().rstrip().split())
IS_LOCAL = int(os.getenv("ATCODER", "0"))==0
err = (lambda *args, **kwargs: print(*args, **kwargs, file=sys.stderr)) if IS_LOCAL else (lambda *args, **kwargs: None)


def main():
    N = rI()
    A = rLI()
    K = rI()
    
    print(sum(1 for a in A if a >= K))
    
if __name__ == '__main__':
    main()

minをたくさん使った

ソースコード

main.py

from bisect import bisect_left, bisect_right, insort_left, insort_right
from collections import defaultdict, Counter, deque
from functools import reduce, lru_cache
from itertools import product, accumulate, groupby, combinations
import sys
import os
def rI(): return int(sys.stdin.readline().rstrip())
def rLI(): return list(map(int,sys.stdin.readline().rstrip().split()))
def rI1(): return (int(sys.stdin.readline().rstrip())-1)
def rLI1(): return list(map(lambda a:int(a)-1,sys.stdin.readline().rstrip().split()))
def rS(): return sys.stdin.readline().rstrip()
def rLS(): return list(sys.stdin.readline().rstrip().split())
IS_LOCAL = int(os.getenv("ATCODER", "0"))==0
err = (lambda *args, **kwargs: print(*args, **kwargs, file=sys.stderr)) if IS_LOCAL else (lambda *args, **kwargs: None)

def main():
    N, Q = rLI()
    X = rLI1()
    Y = [0]*N
    B = [0]*Q
    for i,x in enumerate(X):
        if x == -1:
            miny = min(Y)
            j = min(k for k,y in enumerate(Y) if y == miny)            
        else:
            j = x
        Y[j] += 1
        B[i] = j
    print(*(b+1 for b in B))
            
    
if __name__ == '__main__':
    main()

巡回シフト…

グラフ…

ステート管理とか頑張ったけどTLEした

grid…

円周上の点…

大会の予選コンテストだからか難易度高めでつらい
最近は巡回シフトも食わず嫌いリストに入ってしまったorz





Source link

Views: 0

RELATED ARTICLES

返事を書く

あなたのコメントを入力してください。
ここにあなたの名前を入力してください

- Advertisment -