結果
| 問題 |
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)