Edited at

python3 競プロ用memo

More than 1 year has passed since last update.


Description

競技プログラミングはじめてみました。基本的な事柄についてのメモです。


IO


input


use sys

import sys

inputs = sys.stdin.readline().split()


use input()

#for multiple inputs

n, m = list(map(int, input().split()))

#when list is needed
x = list(map(int, input().split()))

#define as a function
def read(): return list(map(int, input().split()))


Ideas


複数区間の距離の和

複数の点の座標が与えられたとき、任意の2点間を結ぶ線分の長さの総和

#given list of dots, **SORTED**

x = list(map(int, input().split()))
nx = len(x)
sumx = sum( x[i]*(2*i - nx + 1) for i in range(nx) )

2*i -nx + 1 の部分は、総和の式の中でその点の座標の加算される回数(その点の左にある点の個数と等しい)と、その点の座標が減算される回数(その点の右にある点の個数と等しい)との、の和を求めています。


Update Log


  1. 170409 initial upload

  2. 170410 コメントでいただいた内容を反映