結果
| 問題 |
No.453 製薬会社
|
| ユーザー |
nmnmnmnmnmnmnm
|
| 提出日時 | 2015-10-11 23:06:57 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
AC
|
| 実行時間 | 2 ms / 2,000 ms |
| コード長 | 1,705 bytes |
| コンパイル時間 | 1,010 ms |
| コンパイル使用メモリ | 86,660 KB |
| 実行使用メモリ | 5,376 KB |
| 最終ジャッジ日時 | 2024-07-21 06:58:26 |
| 合計ジャッジ時間 | 1,878 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 9 |
ソースコード
#include <algorithm>
#include <cfloat>
#include <climits>
#include <cmath>
#include <complex>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <functional>
#include <iostream>
#include <map>
#include <memory>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <string>
#include <utility>
#include <vector>
using namespace std;
#define sz size()
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define all(c) (c).begin(), (c).end()
#define rep(i,a,b) for(int i=(a);i<(b);++i)
#define clr(a, b) memset((a), (b) ,sizeof(a))
#define MOD 1000000007
// シンプレックス法
double dd[3][5];
int main() {
int c,d;
cin>>c>>d;
clr(dd,0);
dd[0][0] = -1000;
dd[0][1] = -2000;
dd[1][0] = 21;
dd[1][1] = 8;
dd[1][2] = 1;
dd[1][4] = 28*c;
dd[2][0] = 7;
dd[2][1] = 20;
dd[2][3] = 1;
dd[2][4] = 28*d;
while(1){
int index1 = 0;
int index2 = 0;
double mn1 = 100000000;
rep(i,0,4){
if(dd[0][i]<mn1){
index1 = i;
mn1 = dd[0][i];
}
}
if(mn1>=0)break;
double mn2 = 100000000;
rep(i,1,3){
if(dd[i][4]/dd[i][index1]<mn2){
index2 = i;
mn2 = dd[i][4]/dd[i][index1];
}
}
double a = dd[index2][index1];
rep(i,0,5){
dd[index2][i]/=a;
}
rep(i,0,3){
if(i==index2)continue;
double b = dd[i][index1];
rep(j,0,5){
if(j == index1){
dd[i][j]=0;
}
else{
dd[i][j] -= dd[index2][j]*b;
}
}
}
}
printf("%10.10f\n",dd[0][4]);
return 0;
}
nmnmnmnmnmnmnm