結果
| 問題 | No.505 カードの数式2 | 
| コンテスト | |
| ユーザー |  dnish | 
| 提出日時 | 2017-04-22 16:01:31 | 
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 2 ms / 2,000 ms | 
| コード長 | 567 bytes | 
| コンパイル時間 | 1,527 ms | 
| コンパイル使用メモリ | 166,540 KB | 
| 実行使用メモリ | 6,824 KB | 
| 最終ジャッジ日時 | 2024-11-14 07:20:58 | 
| 合計ジャッジ時間 | 2,305 ms | 
| ジャッジサーバーID (参考情報) | judge5 / judge2 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 3 | 
| other | AC * 29 | 
ソースコード
#include <bits/stdc++.h>
#define REP(i,n,N) for(int i=n;i<N;i++)
#define p(S) cout<<(S)<<endl
#define ck(n,a,b) (a<=(n)&&(n)<b)
#define F first
#define S second
typedef long long ll;
using namespace std;
const int inf=1e9;
int main(){
	int n;
	cin>>n;
	int a;
	cin>>a;
	ll mx=a,mn=a;
	REP(i,1,n){
		cin>>a;
		ll tmx,tmn;
		tmx=max( max(mx-a ,max(mx+a ,mx*a)) , max(mn-a ,max(mn+a ,mn*a)) );
		tmn=min( min(mx-a ,min(mx+a ,mx*a)) , min(mn-a ,min(mn+a ,mn*a)) );
		if(a!=0) {
			tmx=max(tmx,mx/a);
			tmn=min(tmn,mn/a);
		}
		mx=tmx;
		mn=tmn;
	}
	p(mx);
	return 0;
}
            
            
            
        