PCAD: ALDS1_1_D、ALDS1_1_A
ALDS1_1_D: Maximum Profit
相場を見ていつ買っていつ売ると最大の利益が得られるかって問題
3乗を求めるだけのこの前のを除けば初の課題なわりには要求がややこしい
こういうのはちゃんと問題を読み取れるかがキモかもしれない
C++で書こうと思ってたけどpythonで書けるところはpythonにしようかな
楽だし
#! /usr/local/bin/python3
# coding: utf-8
n = int(input())
min_r = int(input())
max_margin = -1000000001
for i in range(n - 1):
r = int(input())
max_margin = max(r - min_r, max_margin)
min_r = min(r, min_r)
print(max_margin)
ところでこの手の問題、データの前にたいていデータの個数が書いてあるのがどうも
気になります
冗長なので
データの個数が書いてあってデータが並んでると、つい整合性が取れてるかどうか
チェックしたくなったり
しないんだったらファイルの終わりまで読めばいいじゃない?
と思って最後まで読むように書いてみた
こうかな
n
は読み捨て
#! /usr/local/bin/python3
# coding: utf-8
import sys
n = int(input())
min_r = int(input())
max_margin = -1000000001
for l in sys.stdin:
r = int(l)
max_margin = max(r - min_r, max_margin)
min_r = min(r, min_r)
print(max_margin)
sys.stdinてのを使うんだな
import sys
がいるとか、ターミナルから直接値を入れるとEOF入れなきゃとかでめんどい
あきらめて普通に書くことにする
ALDS1_1_A: Insertion Sort
挿入ソート
Pythonで関数に配列を渡すと中身書き換えられるんだっけ?
(よくわからなくなっている)
#! /usr/local/bin/python3
# coding: utf-8
def insertion_sort(a):
for i in range(1, len(a)):
print(" ".join(map(str, a)))
w = a[i]
j = i - 1
while j >= 0 and w < a[j]:
a[j + 1] = a[j]
j -= 1
a[j + 1] = w
n = int(input())
a = [int(i) for i in input().split()]
insertion_sort(a)
print(" ".join(map(str, a)))
大丈夫だった
コード書いて保存して、ターミナルで実行権限つけて実行して、
Webサイトから入力データをコピペする、っていうのが地味に面倒
このへんはPaizaの方が楽だな
"Link to β version of AOJ 2.0"って書いてあるからもしかしたらそっちでは楽?
と思ったけど入力例で実行してくれるような機能はなさそう 残念
でも結果が見やすいからこっち使おうかな