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
AC × 3
WA × 1
AC × 9
WA × 10
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