結果
| 問題 |
No.1220 yukipoker
|
| コンテスト | |
| ユーザー |
f_stsh
|
| 提出日時 | 2020-09-06 10:34:36 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 199 ms / 2,000 ms |
| コード長 | 909 bytes |
| コンパイル時間 | 1,753 ms |
| コンパイル使用メモリ | 167,060 KB |
| 実行使用メモリ | 5,248 KB |
| 最終ジャッジ日時 | 2024-11-29 06:43:31 |
| 合計ジャッジ時間 | 4,515 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 25 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
/* typedef */
typedef long long ll;
typedef pair<int, int> pii;
/* constant */
const int INF = 1 << 30;
const ll LINF = 1LL << 50;
const int NIL = -1;
const int MAX = 100005;
const int mod = 1000000007;
const double pi = 3.141592653589;
/* global variables */
vector<double> logSum(MAX);
/* function */
void init() {
for (int i = 1; i < MAX; i++)
logSum[i] = logSum[i - 1] + log(i);
}
void solve() {
int N, M, K;
cin >> N >> M >> K;
// Flush: m * nCk
// Straight: (n - k + 1) * (m ** k)
// これを対数をとって比べる
// log(n!) = \sum_{i=1}^{n} log(i)
double l = logSum[N];
double r = logSum[N - K + 1] + logSum[K] + log(M) * (K - 1);
cout << (l < r ? "Flush" : "Straight") << '\n';
}
/* main */
int main(){
init();
int Q;
cin >> Q;
for (int i = 0; i < Q; i++) {
solve();
}
}
f_stsh