Submission #1183586
Source Code Expand
#include <iostream>
#include <cstdio>
#include <cmath>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int N, A, B;
scanf("%d %d %d",&N,&A,&B);
long long arr[N];
vector<long long> unique_numbers;
vector<long long> unique_numbers_count;
for (int i=0; i<N; i++) {
scanf("%lld",&arr[i]);
bool flag = false;
for (int j=0; j<unique_numbers.size(); j++) {
if (arr[i]==unique_numbers[j]) {
unique_numbers_count[j] ++;
flag = true;
}
}
if (!flag) {
unique_numbers.push_back(arr[i]);
unique_numbers_count.push_back(1);
}
}
sort(arr, arr+N, std::greater<long long>());
long long total_A = 0;
for (int i=0; i<A; i++) {
total_A += arr[i];
}
long long total_B = 0;
for (int i=0; i<B; i++) {
total_B += arr[i];
}
if ((double(total_A)/double(A)) >= (double(total_B/(double(B))))) {
printf("%.6lf\n",double(total_A)/double(A));
//combinations
long least_element = arr[A-1];
int have = 0;
for (int j=0; j<unique_numbers.size(); j++) {
if (unique_numbers[j]==least_element) {
have = unique_numbers_count[j];
break;
}
}
int present = 0;
for (int j=0; j<A; j++) {
if (arr[j]==least_element) {
present++;
}
}
if (((double(total_A)/double(A)) == (double(total_B/(double(B))))) && (A!=B)) {
int result_A = have-present+1;
long least_element = arr[B-1];
int have = 0;
for (int j=0; j<unique_numbers.size(); j++) {
if (unique_numbers[j]==least_element) {
have = unique_numbers_count[j];
break;
}
}
int present = 0;
for (int j=0; j<B; j++) {
if (arr[j]==least_element) {
present++;
}
}
printf("%d\n",result_A+have-present+1);
}
else printf("%d\n",have-present+1);
}
return 0;
}
Submission Info
Submission Time |
|
Task |
D - Maximum Average Sets |
User |
volmaken |
Language |
C++14 (GCC 5.4.1) |
Score |
0 |
Code Size |
1836 Byte |
Status |
WA |
Exec Time |
1 ms |
Memory |
256 KB |
Compile Error
./Main.cpp: In function ‘int main()’:
./Main.cpp:10:28: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d %d %d",&N,&A,&B);
^
./Main.cpp:17:24: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%lld",&arr[i]);
^
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 |
WA |
1 ms |
256 KB |
subtask_1_1.txt |
AC |
1 ms |
256 KB |
subtask_1_10.txt |
WA |
1 ms |
256 KB |
subtask_1_11.txt |
WA |
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 |
WA |
1 ms |
256 KB |
subtask_1_15.txt |
WA |
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 |
WA |
1 ms |
256 KB |
subtask_1_7.txt |
AC |
1 ms |
256 KB |
subtask_1_8.txt |
WA |
1 ms |
256 KB |
subtask_1_9.txt |
WA |
1 ms |
256 KB |