Submission #1243949
Source Code Expand
#include <iostream> #include <cmath> #include <algorithm> using namespace std; typedef long long int ll; #define MOD (1e9+7); #define INF (2e9) long long int c(int x, int y) {//xCyを返す関数 long long int a = 1; for (int i = 1; i<=y; i++) { a *= x+1-i;//x,x-1,・・・,x-y+1 がaにかけられる a/=i;//1,2,・・・,y をaから割る } return a; } int main(void) { int n, a, b; cin >> n >> a >> b; long long int *v = new long long int[n]; for (int i = 0; i<n; i++) { cin >> v[i]; } sort(v, v + n); reverse(v, v + n); long long int min = v[a-1]; //min = 価値平均が最大となるように選んだ品物のうち、 // 一番価値の低いものの価値 → long long int ans = 0;//答え(場合の数) double ans_max=0;//答え(最大値) if (v[0] == min) {//A番目まですべて同じ価値なら ans_max=min;// 答え int i; for (i = 0; i<n; i++) { if (v[i] != min) {//{min,min,・・・,min,no,・・・} ならばnoを指して止まる break; } } //i = min と同じ価値の品物の個数 while (a <= b && a <= i) {//i個のうちa個選ぶ、a+1個選ぶ、・・・・、min(b,i)個選ぶ ans += c(i, a); a++; } } else { for(int k=0;k<a;k++){//A番目までの商品の平均値 ans_max+=v[k]; } ans_max/=a; int minp, minm; for (minp = a-1; v[minp] == min && minp<n; minp++) {}//minより小さい値を見つけたらstop for (minm = a-1; v[minm] == min && minm >= 0; minm--) {}//minより大きい値を見つけたらstop int kosu = minp - minm - 1; a -= minm + 1; ans = c(kosu, a); } cout << ans_max<<"\n"<<ans << "\n"; return 0; }
Submission Info
Submission Time | |
---|---|
Task | D - Maximum Average Sets |
User | Jirotech |
Language | C++14 (GCC 5.4.1) |
Score | 0 |
Code Size | 1983 Byte |
Status | WA |
Exec Time | 1 ms |
Memory | 256 KB |
Judge Result
Set Name | Sample | All | ||||||
---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 0 / 400 | ||||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt |
All | sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt, subtask_1_1.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt, subtask_1_14.txt, subtask_1_15.txt, subtask_1_2.txt, subtask_1_3.txt, subtask_1_4.txt, subtask_1_5.txt, subtask_1_6.txt, subtask_1_7.txt, subtask_1_8.txt, subtask_1_9.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
sample_01.txt | AC | 1 ms | 256 KB |
sample_02.txt | AC | 1 ms | 256 KB |
sample_03.txt | AC | 1 ms | 256 KB |
sample_04.txt | AC | 1 ms | 256 KB |
subtask_1_1.txt | AC | 1 ms | 256 KB |
subtask_1_10.txt | AC | 1 ms | 256 KB |
subtask_1_11.txt | AC | 1 ms | 256 KB |
subtask_1_12.txt | WA | 1 ms | 256 KB |
subtask_1_13.txt | WA | 1 ms | 256 KB |
subtask_1_14.txt | AC | 1 ms | 256 KB |
subtask_1_15.txt | AC | 1 ms | 256 KB |
subtask_1_2.txt | AC | 1 ms | 256 KB |
subtask_1_3.txt | AC | 1 ms | 256 KB |
subtask_1_4.txt | AC | 1 ms | 256 KB |
subtask_1_5.txt | AC | 1 ms | 256 KB |
subtask_1_6.txt | AC | 1 ms | 256 KB |
subtask_1_7.txt | WA | 1 ms | 256 KB |
subtask_1_8.txt | AC | 1 ms | 256 KB |
subtask_1_9.txt | AC | 1 ms | 256 KB |