結果
問題 | No.505 カードの数式2 |
ユーザー |
![]() |
提出日時 | 2017-04-26 18:29:54 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 787 bytes |
コンパイル時間 | 1,391 ms |
コンパイル使用メモリ | 159,272 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-11-14 07:21:53 |
合計ジャッジ時間 | 2,307 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 29 |
ソースコード
#include<bits/stdc++.h> using namespace std; #define int long long int solve_mx(int a, int num){ int pl = num + a; int mi = num - a; int ml = num * a; int di; if(a == 0)di = -1e9; else di = num / a; return max(pl, max(mi, max(ml, di))); } int solve_mn(int a, int num){ int pl = num + a; int mi = num - a; int ml = num * a; int di; if(a == 0)di = 1e9; else di = num / a; return min(pl, min(mi, min(ml, di))); } signed main(){ int n; cin >> n; int mx, mn; int a; cin >> a; mx = a; mn = a; for(int i = 1; i < n; i++){ cin >> a; int tmp1 = mx; mx = solve_mx(a, mx); int tmp = solve_mx(a, mn); mx = max(mx, tmp); mn = solve_mn(a, mn); tmp1 = solve_mn(a, tmp1); mn = min(mn, tmp1); //cout << mx << " " << mn << endl; } cout << mx << endl; }