Submission #1520061


Source Code Expand

#include <queue>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <functional>

using namespace std;

typedef long long ll;

const int maxn = 110000;

struct rec
{
	int a, b;
};

priority_queue<int,vector<int>,greater<int> > q1, q2;
ll sy[maxn], sx[maxn];
rec a[maxn];

bool comp(const rec & a, const rec & b)
{
	return a.a - a.b < b.a - b.b;
}

int main(int argc, char * argv[])
{
	int x, y, z;
	ll ans = 0;
	scanf("%d%d%d", &x, &y, &z);
	for (int i = 1;i <= x + y + z;++i)
	{
		int t1, t2, t3;
		scanf("%d%d%d", &t1, &t2, &t3);
		ans += t3;
		a[i].a = t1 - t3;
		a[i].b = t2 - t3;
	}
	sort(a + 1, a + x + y + z + 1, comp);
	ll cur = 0;
	for (int i = 1;i <= y;++i)
	{
		cur += a[i].b;
		q1.push(a[i].b);
	}
	sy[y] = cur;
	for (int i = y + 1;i <= x + y + z;++i)
	{
		if (a[i].b > q1.top())
		{
			cur -= q1.top();
			q1.pop();
			cur += a[i].b;
			q1.push(a[i].b);
		}
		sy[i] = cur;
	}
	cur = 0;
	for (int i = x + y + z;i >= y + z + 1;--i)
	{
		cur += a[i].a;
		q2.push(a[i].a);
	}
	sx[y + z + 1] = cur;
	for (int i = y + z;i >= 1;--i)
	{
		if (a[i].a > q2.top())
		{
			cur -= q2.top();
			q2.pop();
			cur += a[i].a;
			q2.push(a[i].a);
		}
		sx[i] = cur;
	}
	ll ret = -(1ll<<60);
	for (int i = y;i <= y + z;++i)
	{
		ret = max(ret, sy[i] + sx[i+1]);
	}
	printf("%lld\n", ans+ret);
	return 0;
}

Submission Info

Submission Time
Task C - Coins
User wrz91win
Language C++14 (GCC 5.4.1)
Score 800
Code Size 1402 Byte
Status AC
Exec Time 47 ms
Memory 2624 KB

Compile Error

./Main.cpp: In function ‘int main(int, char**)’:
./Main.cpp:32:29: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d%d%d", &x, &y, &z);
                             ^
./Main.cpp:36:33: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d%d%d", &t1, &t2, &t3);
                                 ^

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 800 / 800
Status
AC × 3
AC × 35
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
All sample_01.txt, sample_02.txt, sample_03.txt, sample_01.txt, sample_02.txt, sample_03.txt, subtask_1_01.txt, subtask_1_02.txt, subtask_1_03.txt, subtask_1_04.txt, subtask_1_05.txt, subtask_1_06.txt, subtask_1_07.txt, subtask_1_08.txt, subtask_1_09.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_16.txt, subtask_1_17.txt, subtask_1_18.txt, subtask_1_19.txt, subtask_1_20.txt, subtask_1_21.txt, subtask_1_22.txt, subtask_1_23.txt, subtask_1_24.txt, subtask_1_25.txt, subtask_1_26.txt, subtask_1_27.txt, subtask_1_28.txt, subtask_1_29.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
subtask_1_01.txt AC 1 ms 256 KB
subtask_1_02.txt AC 8 ms 640 KB
subtask_1_03.txt AC 11 ms 1024 KB
subtask_1_04.txt AC 23 ms 1536 KB
subtask_1_05.txt AC 27 ms 1664 KB
subtask_1_06.txt AC 36 ms 2048 KB
subtask_1_07.txt AC 9 ms 768 KB
subtask_1_08.txt AC 33 ms 2176 KB
subtask_1_09.txt AC 9 ms 768 KB
subtask_1_10.txt AC 33 ms 1920 KB
subtask_1_11.txt AC 46 ms 2428 KB
subtask_1_12.txt AC 35 ms 2300 KB
subtask_1_13.txt AC 43 ms 2448 KB
subtask_1_14.txt AC 46 ms 2560 KB
subtask_1_15.txt AC 47 ms 2428 KB
subtask_1_16.txt AC 39 ms 2424 KB
subtask_1_17.txt AC 38 ms 2560 KB
subtask_1_18.txt AC 40 ms 2560 KB
subtask_1_19.txt AC 44 ms 2556 KB
subtask_1_20.txt AC 47 ms 2428 KB
subtask_1_21.txt AC 35 ms 2624 KB
subtask_1_22.txt AC 47 ms 2300 KB
subtask_1_23.txt AC 46 ms 2440 KB
subtask_1_24.txt AC 47 ms 2428 KB
subtask_1_25.txt AC 39 ms 2296 KB
subtask_1_26.txt AC 41 ms 2496 KB
subtask_1_27.txt AC 41 ms 2624 KB
subtask_1_28.txt AC 44 ms 2428 KB
subtask_1_29.txt AC 1 ms 256 KB