結果
問題 | No.726 Tree Game |
ユーザー |
![]() |
提出日時 | 2018-08-24 22:00:36 |
言語 | C++11 (gcc 13.3.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,269 bytes |
コンパイル時間 | 1,484 ms |
コンパイル使用メモリ | 159,084 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-06-23 07:22:19 |
合計ジャッジ時間 | 2,065 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 17 WA * 8 |
ソースコード
#include <bits/stdc++.h> using namespace std; #define pb push_back #define mp make_pair #define all(x) (x).begin(),(x).end() #define rep(i,n) for(int i=0;i<(n);i++) constexpr int MOD = 1000000007; typedef long long ll; typedef unsigned long long ull; typedef pair<int,int> pii; typedef pair<ll,ll> pll; constexpr int dx[] = {1, 0, -1, 0, 1, 1, -1, -1}; constexpr int dy[] = {0, -1, 0, 1, 1, -1, -1, 1}; template <typename T> ostream &operator<<(ostream &os, const vector<T> &vec){os << "["; for (const auto &v : vec) {os << v << ","; } os << "]"; return os; } bool isprime(ll x) { if (x == 2) return true; bool flag = true; for(ll j = 2; j * j <= x; j++) { if (x % j == 0) { flag = false; break; } } return flag; } ll p(ll x) { for(ll i = x + 1; ; i++) { if (isprime(i)) { return i; } } } void solve() { ll X, Y; cin >> X >> Y; if (isprime(X + 1) && isprime(Y + 1)) { cout << "First" << endl; } ll pX = p(X) - 1; ll pY = p(Y) - 1; ll s = (pX - X) + (pY - Y); if (s % 2 == 0) { cout << "Second" << endl; } else { cout << "First" << endl; } } int main() { std::cin.tie(0); std::ios::sync_with_stdio(false); cout.setf(ios::fixed); cout.precision(16); solve(); return 0; }