Submission #11213171


Source Code Expand

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <queue>
using namespace std;
typedef long long LL;
const LL INF = 0x3f3f3f3f3f3f3f3f;

struct node{
	LL id,lr,val;
	bool operator <(const node &nd)const{
		return nd.val > val;
	}
};
priority_queue <node> q;

node make_node(LL id,LL lr,LL val){
	node ret; ret.id = id; ret.lr = lr; ret.val = val; return ret;
}

LL n,l[500005],r[500005],sl = 0,sr = 0;
LL in[500005][2] = {0};
LL h[500005],hd[500005],sum = 0,ans = INF;

int main(){
	cin >> n;
	for(LL i = 1;i <= n;i ++){
		cin >> l[i] >> r[i]; sl += l[i]; sr += r[i];
		in[i][0] = 1; in[i][1] = 1;
		q.push(make_node(i,0,l[i]));
		if(q.size() > n){ in[q.top().id][q.top().lr] = 0; q.pop(); }
		q.push(make_node(i,1,r[i]));
		if(q.size() > n){ in[q.top().id][q.top().lr] = 0; q.pop(); }
	}
	for(LL i = 1;i <= n;i ++){
		h[i] = q.top().val; sum += h[i]; hd[i] = q.top().id;
		q.pop();
	}
	for(LL i = 1;i <= n;i ++){
		LL tmp = sum,tt = 0;
		if(!in[i][0] && !in[i][1]){
			tmp += l[i]; tmp += r[i];
			tmp -= h[1]; tmp -= h[2];
		}
		if(!in[i][0] && in[i][1]){
			tmp += l[i];
			tmp -= (hd[1] == i ? h[2] : h[1]);
		}
		if(!in[i][1] && in[i][0]){
			tmp += r[i];
			tmp -= (hd[1] == i ? h[2] : h[1]);
		}
//		cout << i << ' ' << tmp << ' ' << sum << endl;
		ans = min(ans,tmp);
	}
	ans = min(ans,min(sl,sr));
	cout << ans << endl;
	return 0;
}

Submission Info

Submission Time
Task C - Min Cost Cycle
User ltzInstallB
Language C++14 (GCC 5.4.1)
Score 700
Code Size 1437 Byte
Status AC
Exec Time 124 ms
Memory 18416 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 700 / 700
Status
AC × 3
AC × 31
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, subtask01-01.txt, subtask01-02.txt, subtask01-03.txt, subtask01-04.txt, subtask01-05.txt, subtask01-06.txt, subtask01-07.txt, subtask01-08.txt, subtask01-09.txt, subtask01-10.txt, subtask01-11.txt, subtask01-12.txt, subtask01-13.txt, subtask01-14.txt, subtask01-15.txt, subtask01-16.txt, subtask01-17.txt, subtask01-18.txt, subtask01-19.txt, subtask01-20.txt, subtask01-21.txt, subtask01-22.txt, subtask01-23.txt, subtask01-24.txt, subtask01-25.txt
Case Name Status Exec Time Memory
sample-01.txt AC 2 ms 8448 KiB
sample-02.txt AC 2 ms 8448 KiB
sample-03.txt AC 3 ms 8448 KiB
subtask01-01.txt AC 2 ms 8448 KiB
subtask01-02.txt AC 91 ms 14832 KiB
subtask01-03.txt AC 112 ms 18288 KiB
subtask01-04.txt AC 3 ms 8448 KiB
subtask01-05.txt AC 75 ms 14708 KiB
subtask01-06.txt AC 80 ms 15728 KiB
subtask01-07.txt AC 111 ms 15600 KiB
subtask01-08.txt AC 104 ms 15856 KiB
subtask01-09.txt AC 74 ms 14580 KiB
subtask01-10.txt AC 76 ms 14708 KiB
subtask01-11.txt AC 96 ms 15216 KiB
subtask01-12.txt AC 101 ms 16112 KiB
subtask01-13.txt AC 58 ms 14196 KiB
subtask01-14.txt AC 119 ms 18416 KiB
subtask01-15.txt AC 117 ms 18160 KiB
subtask01-16.txt AC 118 ms 18288 KiB
subtask01-17.txt AC 124 ms 18288 KiB
subtask01-18.txt AC 119 ms 17776 KiB
subtask01-19.txt AC 117 ms 18032 KiB
subtask01-20.txt AC 119 ms 18416 KiB
subtask01-21.txt AC 120 ms 17776 KiB
subtask01-22.txt AC 120 ms 17776 KiB
subtask01-23.txt AC 118 ms 17776 KiB
subtask01-24.txt AC 118 ms 18416 KiB
subtask01-25.txt AC 119 ms 17776 KiB