結果
問題 | No.761 平均値ゲーム |
ユーザー |
![]() |
提出日時 | 2018-12-09 00:11:23 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 56 ms / 2,000 ms |
コード長 | 1,528 bytes |
コンパイル時間 | 1,128 ms |
コンパイル使用メモリ | 119,320 KB |
実行使用メモリ | 6,656 KB |
最終ジャッジ日時 | 2024-09-14 17:48:45 |
合計ジャッジ時間 | 5,946 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 100 |
ソースコード
#include<iostream>#include<string>#include<cstdio>#include<vector>#include<cmath>#include<algorithm>#include<functional>#include<iomanip>#include<queue>#include<ciso646>#include<random>#include<map>#include<set>#include<complex>#include<bitset>#include<stack>#include<unordered_map>using namespace std;typedef long long ll;typedef unsigned int ui;const ll mod = 1000000009;const ll INF = (ll)1000000007 * 1000000007;typedef pair<int, int> P;#define stop char nyaa;cin>>nyaa;#define rep(i,n) for(int i=0;i<n;i++)#define per(i,n) for(int i=n-1;i>=0;i--)#define Rep(i,sta,n) for(int i=sta;i<n;i++)#define rep1(i,n) for(int i=1;i<=n;i++)#define per1(i,n) for(int i=n;i>=1;i--)#define Rep1(i,sta,n) for(int i=sta;i<=n;i++)typedef long double ld;typedef complex<ld> Point;const ld eps = 1e-11;const ld pi = acos(-1.0);typedef pair<ll, ll> LP;typedef pair<ld, ld> LDP;typedef unsigned long long ul;int n;ll a[1 << 17],s[1<<17];map<P, bool> mp;map<P, bool> used;bool dfs(int le, int ri) {if (used[{le, ri}])return mp[{le, ri}];used[{le, ri}] = true;if (le == ri)return mp[{le, ri}] = false;ll sum = s[ri] - s[le];ld z = sum / (ld)(ri - le);int id = lower_bound(a + le, a + ri, z) - a;if ((!dfs(le, id)) || (!dfs(id, ri)))return mp[{le, ri}] = true;else return mp[{le, ri}] = false;}int main() {cin >> n;rep(i, n) {cin >> a[i];}s[0] = 0;rep(i, n) {s[i + 1] += s[i] + a[i];}if (dfs(0, n))cout << "First" << endl;else cout << "Second" << endl;return 0;}