結果
問題 |
No.602 隠されていたゲーム2
|
ユーザー |
![]() |
提出日時 | 2018-12-02 20:56:55 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 57 ms / 2,000 ms |
コード長 | 970 bytes |
コンパイル時間 | 2,287 ms |
コンパイル使用メモリ | 198,612 KB |
最終ジャッジ日時 | 2025-01-06 17:56:49 |
ジャッジサーバーID (参考情報) |
judge5 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 21 |
ソースコード
#include<bits/stdc++.h> using namespace std; using Int = long long; template<typename T1,typename T2> inline void chmin(T1 &a,T2 b){if(a>b) a=b;} template<typename T1,typename T2> inline void chmax(T1 &a,T2 b){if(a<b) a=b;} //INSERT ABOVE HERE signed main(){ Int n; cin>>n; vector<Int> d(n); for(Int i=0;i<n;i++) cin>>d[i]; Int x,y; cin>>x>>y; if(x==0&&y==0){ cout<<0<<endl; return 0; } Int s=abs(x)+abs(y); sort(d.begin(),d.end()); for(Int i=0;i<n;i++){ if(d[i]==s){ cout<<1<<endl; return 0; } } Int e=-1,o=-1; for(Int i=0;i<n;i++){ if(d[i]&1) chmax(o,d[i]); else chmax(e,d[i]); if(~e){ Int t=d[i]+e,w=abs(d[i]-e); if(((t&1)==(s&1))&&w<=s&&s<=t){ cout<<2<<endl; return 0; } } if(~o){ Int t=d[i]+o,w=abs(d[i]-o); if(((t&1)==(s&1))&&w<=s&&s<=t){ cout<<2<<endl; return 0; } } } cout<<-1<<endl; return 0; }