Submission #73412554


Source Code Expand

Copy
#include <stdio.h>
#include <inttypes.h>
int N, X, Y;
int A[212345];
int main(void) {
int i;
int min = 1010101010;
uint64_t ans = 0;
if (scanf("%d%d%d", &N, &X, &Y) != 3) return 1;
for (i = 0; i < N; i++) {
if (scanf("%d", &A[i]) != 1) return 1;
if (A[i] < min) min = A[i];
}
for (i = 0; i < N; i++) {
uint64_t delta = A[i] - min;
uint64_t delta2;
if (delta * Y % (Y - X) != 0) {
/* */
puts("-1");
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#include <stdio.h>
#include <inttypes.h>

int N, X, Y;
int A[212345];

int main(void) {
	int i;
	int min = 1010101010;
	uint64_t ans = 0;
	if (scanf("%d%d%d", &N, &X, &Y) != 3) return 1;
	for (i = 0; i < N; i++) {
		if (scanf("%d", &A[i]) != 1) return 1;
		if (A[i] < min) min = A[i];
	}
	for (i = 0; i < N; i++) {
		uint64_t delta = A[i] - min;
		uint64_t delta2;
		if (delta * Y % (Y - X) != 0) {
			/* 小さな飴にする数が整数でないので失格 */
			puts("-1");
			return 0;
		}
		delta2 = delta * Y / (Y - X);
		if (delta2 > (unsigned int)A[i]) {
			/* 個数オーバーで失格 */
			puts("-1");
			return 0;
		}
		ans += A[i] - delta2;
	}
	printf("%" PRIu64 "\n", ans);
	return 0;
}

/*

一番飴の数が少ない人を基準とする
調整に関係ない飴はどっちでもいいので、個数最大化のため全部大きな飴とする

飴を1個増やすとどうなるか?
仮に大きい飴を追加するとする
このとき、重量が Y 増えるので、辻褄を合わせるため Y / (Y - X) 個の飴を小さな飴にする

飴を2個増やすとどうなるか?
同様に、大きい飴を2個追加し、2*Y / (Y - X) 個の飴を小さな飴にする

同様に、飴を n 個増やすときは、n*Y / (Y - X) 個の飴を小さな飴にする

この、小さな飴にする数が
・整数でない
・飴の個数をオーバーする
場合、失格

*/

Submission Info

Submission Time
Task C - Candy Tribulation
User mikecat
Language C23 (GCC 14.2.0)
Score 350
Code Size 1467 Byte
Status AC
Exec Time 13 ms
Memory 2548 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 350 / 350
Status
AC × 3
AC × 46
Set Name Test Cases
Sample 00-sample-01.txt, 00-sample-02.txt, 00-sample-03.txt
All 00-sample-01.txt, 00-sample-02.txt, 00-sample-03.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt, 01-18.txt, 01-19.txt, 01-20.txt, 01-21.txt, 01-22.txt, 01-23.txt, 01-24.txt, 01-25.txt, 01-26.txt, 01-27.txt, 01-28.txt, 01-29.txt, 01-30.txt, 01-31.txt, 01-32.txt, 01-33.txt, 01-34.txt, 01-35.txt, 01-36.txt, 01-37.txt, 01-38.txt, 01-39.txt, 01-40.txt, 01-41.txt, 01-42.txt, 01-43.txt
Case Name Status Exec Time Memory
00-sample-01.txt AC 1 ms 1604 KiB
00-sample-02.txt AC 0 ms 1604 KiB
00-sample-03.txt AC 0 ms 1660 KiB
01-01.txt AC 6 ms 1988 KiB
01-02.txt AC 2 ms 1732 KiB
01-03.txt AC 8 ms 2152 KiB
01-04.txt AC 8 ms 2120 KiB
01-05.txt AC 9 ms 2408 KiB
01-06.txt AC 13 ms 2452 KiB
01-07.txt AC 13 ms 2404 KiB
01-08.txt AC 13 ms 2344 KiB
01-09.txt AC 13 ms 2468 KiB
01-10.txt AC 13 ms 2548 KiB
01-11.txt AC 12 ms 2344 KiB
01-12.txt AC 12 ms 2376 KiB
01-13.txt AC 9 ms 2284 KiB
01-14.txt AC 13 ms 2368 KiB
01-15.txt AC 12 ms 2420 KiB
01-16.txt AC 12 ms 2404 KiB
01-17.txt AC 12 ms 2372 KiB
01-18.txt AC 13 ms 2492 KiB
01-19.txt AC 11 ms 2408 KiB
01-20.txt AC 13 ms 2268 KiB
01-21.txt AC 12 ms 2388 KiB
01-22.txt AC 12 ms 2344 KiB
01-23.txt AC 12 ms 2376 KiB
01-24.txt AC 12 ms 2368 KiB
01-25.txt AC 10 ms 2248 KiB
01-26.txt AC 7 ms 2120 KiB
01-27.txt AC 11 ms 2404 KiB
01-28.txt AC 10 ms 2248 KiB
01-29.txt AC 12 ms 2368 KiB
01-30.txt AC 12 ms 2428 KiB
01-31.txt AC 8 ms 2172 KiB
01-32.txt AC 13 ms 2404 KiB
01-33.txt AC 13 ms 2368 KiB
01-34.txt AC 10 ms 2248 KiB
01-35.txt AC 12 ms 2380 KiB
01-36.txt AC 12 ms 2380 KiB
01-37.txt AC 7 ms 2176 KiB
01-38.txt AC 13 ms 2340 KiB
01-39.txt AC 12 ms 2340 KiB
01-40.txt AC 10 ms 2216 KiB
01-41.txt AC 9 ms 2212 KiB
01-42.txt AC 7 ms 2172 KiB
01-43.txt AC 12 ms 2452 KiB


2026-02-19 (Thu)
01:28:12 +09:00