Submission #8419455


Source Code Expand

#include<iostream>
#include<cstdio>
#include<cctype>
#include<cstring>
#include<algorithm>
#define ll long long
using namespace std;
ll read(){
	ll w=0;
	bool s=0;
	char c=getchar();
	while(!isdigit(c)){
		s=(c=='-');
		c=getchar();
	}
	while(isdigit(c)){
		w=w*10+c-'0';
		c=getchar();
	}
	return s?-w:w;
}
const int N=1000005;
const ll inf=1e15;
int x,y,z,n;
struct Data{
	ll a,b,c;
	friend bool operator < (Data a,Data b){
		return a.a-a.b>b.a-b.b;
	}
};
Data a[N];
ll sum,ans;
ll f[N],g[N];
struct Heap{
	#define fa (root>>1)
	#define ls (root<<1)
	#define rs (root<<1|1)
	ll h[N<<3];
	int siz;
	void clear(){
		siz=0;
		h[0]=-inf;
	}
	void insert(ll x){
		h[++siz]=x;
		int root=siz;
		while(root){
			if(h[root]<h[fa]){
				swap(h[root],h[fa]);
				root=fa;
			}
			else{
				return;
			}
		}
	}
	void remove(){
		swap(h[1],h[siz]);
		siz--;
		int root=1;
		while(ls<=siz){
			int son=ls;
			if(rs<=siz&&h[rs]<h[ls]){
				son=rs;
			}
			if(h[son]<h[root]){
				swap(h[son],h[root]);
				root=son;
			}
			else{
				return;
			}
		}
	}
	bool empty(){
		return !siz;
	}
	int size(){
		return siz;
	}
	void push(int x){
		insert(x);
	}
	void pop(){
		remove();
	}
	ll top(){
		return h[1];
	}
	#undef fa
	#undef ls
	#undef rs
};
Heap que;
int main(){
	x=read(),y=read(),z=read();
	n=x+y+z;
	ll u,v,w;
	for(int i=1;i<=n;i++){
		u=read(),v=read(),w=read();
		ans+=w;
		a[i]=(Data){u,v,w};
	}
	sort(a+1,a+1+n);
	que.clear();
	sum=0;
	for(int i=1;i<=n;i++){
		ll dt=a[i].a-a[i].c;
		que.push(dt);
		sum+=dt;
		if(que.size()>x){
			dt=que.top();
			que.pop();
			sum-=dt;
		}
		f[i]=sum;
	}
	que.clear();
	sum=0;
	for(int i=n;i>=1;i--){
		ll dt=a[i].b-a[i].c;
		que.push(dt);
		sum+=dt;
		if(que.size()>y){
			dt=que.top();
			que.pop();
			sum-=dt;
		}
		g[i]=sum;
	}
	sum=-inf;
	for(int i=x;i<=n-y;i++){
		sum=max(sum,f[i]+g[i+1]);
	}
	ans+=sum;
	printf("%lld\n",ans);
	return 0;
}

Submission Info

Submission Time
Task C - Coins
User luogu_bot4
Language C++14 (GCC 5.4.1)
Score 800
Code Size 1882 Byte
Status AC
Exec Time 43 ms
Memory 9216 KB

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 2 ms 6400 KB
sample_02.txt AC 2 ms 6400 KB
sample_03.txt AC 2 ms 6400 KB
subtask_1_01.txt AC 2 ms 6400 KB
subtask_1_02.txt AC 8 ms 6400 KB
subtask_1_03.txt AC 10 ms 6400 KB
subtask_1_04.txt AC 22 ms 6656 KB
subtask_1_05.txt AC 25 ms 6528 KB
subtask_1_06.txt AC 34 ms 8704 KB
subtask_1_07.txt AC 9 ms 6528 KB
subtask_1_08.txt AC 31 ms 8576 KB
subtask_1_09.txt AC 9 ms 6528 KB
subtask_1_10.txt AC 29 ms 8704 KB
subtask_1_11.txt AC 41 ms 8960 KB
subtask_1_12.txt AC 29 ms 8832 KB
subtask_1_13.txt AC 39 ms 9088 KB
subtask_1_14.txt AC 43 ms 8704 KB
subtask_1_15.txt AC 43 ms 8704 KB
subtask_1_16.txt AC 34 ms 8960 KB
subtask_1_17.txt AC 33 ms 8832 KB
subtask_1_18.txt AC 36 ms 8576 KB
subtask_1_19.txt AC 38 ms 8704 KB
subtask_1_20.txt AC 42 ms 8832 KB
subtask_1_21.txt AC 29 ms 8704 KB
subtask_1_22.txt AC 42 ms 8832 KB
subtask_1_23.txt AC 41 ms 8960 KB
subtask_1_24.txt AC 43 ms 8704 KB
subtask_1_25.txt AC 33 ms 9216 KB
subtask_1_26.txt AC 35 ms 8960 KB
subtask_1_27.txt AC 36 ms 8704 KB
subtask_1_28.txt AC 38 ms 8704 KB
subtask_1_29.txt AC 2 ms 6400 KB