結果
問題 | No.453 製薬会社 |
ユーザー |
|
提出日時 | 2016-12-04 05:06:11 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 36 ms / 2,000 ms |
コード長 | 1,426 bytes |
コンパイル時間 | 77 ms |
コンパイル使用メモリ | 12,672 KB |
実行使用メモリ | 11,520 KB |
最終ジャッジ日時 | 2024-11-27 19:38:21 |
合計ジャッジ時間 | 1,246 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 9 |
ソースコード
from fractions import Fraction C, D = input().split() b = [False , False, False, True, True] s = [] # Simplex Algorithm # base, X1, X2, X3, X4, constant s.append([3, Fraction(3, 4), Fraction(2, 7), Fraction(1), Fraction(0), Fraction(C)]) s.append([4, Fraction(1, 4), Fraction(5, 7), Fraction(0), Fraction(1), Fraction(D)]) s.append([0, Fraction(-1000), Fraction(-2000), Fraction(0), Fraction(0), Fraction(0)]) def base(): x = -1 for i in range(1, 5): if b[i]: continue elif s[2][i] < 0: if x < 0: x = i elif s[2][i] < s[2][x]: x = i return x while base() >= 0: xb = base() b[xb] = True u = s[0][5] / s[0][xb] v = s[1][5] / s[1][xb] if u < v: b[s[0][0]] = False s[0][0] = xb t = s[0][xb] for i in range(1, 6): s[0][i] /= t for j in range(1, 3): t = s[j][xb] for i in range(1, 6): s[j][i] -= t * s[0][i] else: b[s[1][0]] = False s[1][0] = xb t = s[1][xb] for i in range(1, 6): s[1][i] /= t for j in range(0, 3): if j != 1: t = s[j][xb] for i in range(1, 6): s[j][i] -= t * s[1][i] # print(s) ans = float(s[2][5]) print(ans)