結果
問題 | No.794 チーム戦 (2) |
ユーザー |
![]() |
提出日時 | 2019-02-22 22:18:15 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 44 ms / 1,500 ms |
コード長 | 1,416 bytes |
コンパイル時間 | 795 ms |
コンパイル使用メモリ | 100,396 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-11-25 09:06:54 |
合計ジャッジ時間 | 2,682 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 32 |
ソースコード
#include <cstdio>#include <cstdlib>#include <cmath>#include <cstring>#include <iostream>#include <complex>#include <string>#include <algorithm>#include <numeric>#include <vector>#include <queue>#include <stack>#include <map>#include <set>#include <unordered_map>#include <unordered_set>#include <functional>#include <cassert>typedef long long ll;using namespace std;#ifndef LOCAL#define debug(x) ;#else#define debug(x) cerr << __LINE__ << " : " << #x << " = " << (x) << endl;template <typename T1, typename T2>ostream &operator<<(ostream &out, const pair<T1, T2> &p) {out << "{" << p.first << ", " << p.second << "}";return out;}template <typename T>ostream &operator<<(ostream &out, const vector<T> &v) {out << '{';for (const T &item : v) out << item << ", ";out << "\b\b}";return out;}#endif#define mod 1000000007 //1e9+7(prime number)#define INF 1000000000 //1e9#define LLINF 2000000000000000000LL //2e18#define SIZE 200010int main(){int N, K, a[SIZE];scanf("%d%d", &N, &K);for(int i=0;i<N;i++){scanf("%d", a+i);}sort(a, a+N, greater<int>());ll ans = 1;int t = 0;int i;for(i=0;i<N && a[i]*2 > K;i++){while(a[N-t-1] + a[i] <= K) t++;ans *= t - i;ans %= mod;}N -= i*2;debug(N);for(int i=0;i<N/2;i++){ans *= N - i * 2 - 1;ans %= mod;}cout << ans << endl;return 0;}