結果

問題 No.475 最終日 - Writerの怠慢
ユーザー antaanta
提出日時 2016-12-25 00:14:22
言語 C++14
(gcc 12.3.0 + boost 1.83.0)
結果
WA  
実行時間 -
コード長 1,222 bytes
コンパイル時間 1,947 ms
コンパイル使用メモリ 171,236 KB
実行使用メモリ 6,824 KB
最終ジャッジ日時 2024-12-14 18:48:14
合計ジャッジ時間 2,805 ms
ジャッジサーバーID
(参考情報)
judge1 / judge5
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 2 ms
6,816 KB
testcase_01 AC 2 ms
6,816 KB
testcase_02 AC 2 ms
6,820 KB
testcase_03 WA -
testcase_04 WA -
testcase_05 WA -
testcase_06 WA -
testcase_07 WA -
testcase_08 WA -
testcase_09 WA -
testcase_10 WA -
testcase_11 WA -
testcase_12 WA -
testcase_13 WA -
testcase_14 AC 2 ms
6,816 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

#include "bits/stdc++.h"
using namespace std;
#define rep(i,n) for(int (i)=0;(i)<(int)(n);++(i))
#define rer(i,l,u) for(int (i)=(int)(l);(i)<=(int)(u);++(i))
#define reu(i,l,u) for(int (i)=(int)(l);(i)<(int)(u);++(i))
static const int INF = 0x3f3f3f3f; static const long long INFL = 0x3f3f3f3f3f3f3f3fLL;
typedef vector<int> vi; typedef pair<int, int> pii; typedef vector<pair<int, int> > vpii; typedef long long ll;
template<typename T, typename U> static void amin(T &x, U y) { if (y < x) x = y; }
template<typename T, typename U> static void amax(T &x, U y) { if (x < y) x = y; }

int main() {
	int N; int S; int id;
	while (~scanf("%d%d%d", &N, &S, &id)) {
		vector<int> a(N);
		for (int i = 0; i < N; ++i)
			scanf("%d", &a[i]);
		vector<int> points(N - 1);
		rep(i, N - 1)
			points[i] = 50 * S + 500 * S / (8 + 2 * (i + 1));
		int X = a[id] + 100 * S;
		vector<int> cnt(N, 0);
		rep(i, N) if (i != id) {
			int t = (int)(lower_bound(points.begin(), points.end(), X - a[i], greater<int>()) - points.begin());
			++cnt[t];
		}
		rep(i, N - 1) cnt[i + 1] += cnt[i];
		double ans = 1;
		rep(i, N - 1) {
			ans *= (cnt[i] - i) * 1. / (i + 1);
			if (cnt[i] - i == 0) break;
		}
		printf("%.10f\n", ans);
	}
	return 0;
}
0