提出 #1296984


ソースコード 拡げる

/*{{{*/
// think twice code once
// Start:[]
// End  :[]
#include <bits/stdc++.h>
using namespace std;

#define rep(i, x, y) for(int i = (x), _ = (y); i <= _; ++ i)
#define per(i, x, y) for(int i = (x), _ = (y); i >= _; -- i)
#define dprintf(...) fprintf(stderr, __VA_ARGS__)
#define disp(x) cout << #x << " = " << x << "; "
#define x first
#define y second
#define mp make_pair
#ifdef __linux__
#define getchar getchar_unlocked
#define LLFORMAT "%lld"
#else
#define LLFORMAT "%I64d"
#endif

typedef long long LL;

template <class T> bool chkmin(T& a, T b) { return a > b ? a = b, true : false; }
template <class T> bool chkmax(T& a, T b) { return a < b ? a = b, true : false; }

template <class T> void read(T& a) {
	char c = getchar(); T f = 1; a = 0;
	for(; !isdigit(c); c = getchar()) if(c == '-') f = -1;
	for(; isdigit(c); c = getchar()) a = a * 10 + c - '0';
	a *= f;
}
/*}}}*/

const int maxN = 3e5 + 5;

priority_queue<int, vector<int>, greater<int> > q;
LL pre[maxN], suf[maxN];
LL sum;
int N, a[maxN], b[maxN];

int main()
{
#ifdef Leeson
	freopen("tmp.in", "r", stdin);
	freopen("tmp.out", "w", stdout);
#endif

	LL ans = LLONG_MIN;
	read(N);
	rep(i, 1, N * 3) read(a[i]), b[i] = -a[i];
	rep(i, 1, N * 3)
	{
		q.push(a[i]);
		sum += a[i];
		if((int)q.size() > N) 
			sum -= q.top(), q.pop();
		pre[i] = sum;
	}
	while(!q.empty()) q.pop();
	sum = 0;
	per(i, N*3, 1)
	{
		sum += b[i];
		q.push(b[i]);
		if((int)q.size() > N)
			sum -= q.top(), q.pop();
		suf[i] = sum;
	}
	rep(i, N, 2*N)
		chkmax(ans, pre[i] + suf[i + 1]);
	//rep(i, 1, N*3)
	//{
	//	printf("%lld\n", pre[i]);
	//}
	//per(i, N*3, 1)
	//{
	//	printf("%lld\n", suf[i]);
	//}

	cout << ans << endl;
	return 0;
}

提出情報

提出日時
問題 D - 3N Numbers
ユーザ leeson
言語 C++14 (GCC 5.4.1)
得点 500
コード長 1769 Byte
結果 AC
実行時間 62 ms
メモリ 7800 KiB

ジャッジ結果

セット名 Sample Subtask All
得点 / 配点 0 / 0 300 / 300 200 / 200
結果
AC × 3
AC × 27
AC × 43
セット名 テストケース
Sample 0_00.txt, 0_01.txt, 0_02.txt
Subtask 0_00.txt, 0_01.txt, 0_02.txt, 1_00.txt, 1_01.txt, 1_02.txt, 1_03.txt, 1_04.txt, 1_05.txt, 1_06.txt, 1_07.txt, 1_08.txt, 1_09.txt, 1_10.txt, 1_11.txt, 1_12.txt, 1_13.txt, 1_14.txt, 1_15.txt, 1_16.txt, 1_17.txt, 1_18.txt, 1_19.txt, 1_20.txt, 1_21.txt, 1_22.txt, 1_23.txt
All 0_00.txt, 0_01.txt, 0_02.txt, 1_00.txt, 1_01.txt, 1_02.txt, 1_03.txt, 1_04.txt, 1_05.txt, 1_06.txt, 1_07.txt, 1_08.txt, 1_09.txt, 1_10.txt, 1_11.txt, 1_12.txt, 1_13.txt, 1_14.txt, 1_15.txt, 1_16.txt, 1_17.txt, 1_18.txt, 1_19.txt, 1_20.txt, 1_21.txt, 1_22.txt, 1_23.txt, 2_00.txt, 2_01.txt, 2_02.txt, 2_03.txt, 2_04.txt, 2_05.txt, 2_06.txt, 2_07.txt, 2_08.txt, 2_09.txt, 2_10.txt, 2_11.txt, 2_12.txt, 2_13.txt, 2_14.txt, 2_15.txt
ケース名 結果 実行時間 メモリ
0_00.txt AC 2 ms 4352 KiB
0_01.txt AC 2 ms 4352 KiB
0_02.txt AC 2 ms 4352 KiB
1_00.txt AC 2 ms 4352 KiB
1_01.txt AC 2 ms 4352 KiB
1_02.txt AC 2 ms 4352 KiB
1_03.txt AC 2 ms 4352 KiB
1_04.txt AC 2 ms 4352 KiB
1_05.txt AC 2 ms 4352 KiB
1_06.txt AC 2 ms 4352 KiB
1_07.txt AC 2 ms 4352 KiB
1_08.txt AC 2 ms 4352 KiB
1_09.txt AC 2 ms 4352 KiB
1_10.txt AC 2 ms 4352 KiB
1_11.txt AC 2 ms 4352 KiB
1_12.txt AC 2 ms 4352 KiB
1_13.txt AC 2 ms 4352 KiB
1_14.txt AC 2 ms 4352 KiB
1_15.txt AC 2 ms 4352 KiB
1_16.txt AC 2 ms 4352 KiB
1_17.txt AC 2 ms 4352 KiB
1_18.txt AC 2 ms 4352 KiB
1_19.txt AC 2 ms 4352 KiB
1_20.txt AC 2 ms 4352 KiB
1_21.txt AC 2 ms 4352 KiB
1_22.txt AC 2 ms 4352 KiB
1_23.txt AC 2 ms 4352 KiB
2_00.txt AC 23 ms 7800 KiB
2_01.txt AC 29 ms 7800 KiB
2_02.txt AC 35 ms 7800 KiB
2_03.txt AC 36 ms 7800 KiB
2_04.txt AC 35 ms 7800 KiB
2_05.txt AC 35 ms 7800 KiB
2_06.txt AC 35 ms 7800 KiB
2_07.txt AC 35 ms 7800 KiB
2_08.txt AC 31 ms 7800 KiB
2_09.txt AC 31 ms 7672 KiB
2_10.txt AC 31 ms 7800 KiB
2_11.txt AC 30 ms 7672 KiB
2_12.txt AC 61 ms 7800 KiB
2_13.txt AC 61 ms 7800 KiB
2_14.txt AC 62 ms 7800 KiB
2_15.txt AC 61 ms 7800 KiB