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 |
|
|
| 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 |