結果
問題 | No.726 Tree Game |
ユーザー |
![]() |
提出日時 | 2018-08-24 22:24:47 |
言語 | C++11 (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 3 ms / 2,000 ms |
コード長 | 1,315 bytes |
コンパイル時間 | 1,634 ms |
コンパイル使用メモリ | 159,528 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-06-23 07:57:01 |
合計ジャッジ時間 | 2,531 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 25 |
ソースコード
#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 << "]"; returnos; }bool isprime(ll x) {if (x == 1) return false;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) || isprime(Y + 1)) && (isprime(X + 1) || isprime(Y))) {cout << "Second" << endl;return;}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;}