ABC408振り返り



前回の振り返り

https://qiita.com/comet725/items/dfaf8776b4c33ec1fa27

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

https://atcoder.jp/contests/abc408

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

# A

初回を0秒として前回叩いた時間の差分を出してそれがS以下であればOK

## ソースコード

```python: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, S = rLI()
    A = rLI()
    b = 0
    for a in A:
        if a - b > S:
            print("No")
            break
        b = a
    else:
        print("Yes")
        
if __name__ == '__main__':
    main()

```

# B

SortedSetに入れれば良いだけだけど何故か動かなかったので普通のSetで代用

## ソースコード

```python: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()
    S = set(A)
    
    print(len(S))
    print(*(sorted(S)))
    
if __name__ == '__main__':
    main()

```

# C

imos法(?)をして
最小値持ってくるだけ

## ソースコード

```python: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, M = rLI()
    W = [0]*(N+1)
    
    for _ in range(M):
        l,r = rLI1()
        W[l] += 1
        W[r+1] -= 1
    
    S = list(accumulate(W))[:-1]
    # err(S)
    print(min(S))
    
if __name__ == '__main__':
    main()

```

# D

groupbyしたあとどうすんのって感じ

# E

dijkstra改造すればいけそうな気がしたけどどうすんのって感じ

~~そもそもdijkstraのスニペット化してない~~


# F

数式飲み込むの大変だったけどD以下のダウンしていくだけだよね。
今いるところから他の所にどうサーチすればいいのって感じ

位置のラベル作って降順ソートするとか？

# G

問題のタイトルが数式そのままな件について。

# 感想

Aの問題飲み込むの時間かかりそうだから先にB解いた、
そしてEはグラフのスニペット作ってないから逃げたという怠慢したけど許して。