Submission #4024512


Source Code Expand

#include <bits/stdc++.h>
using namespace std;
using ll = int64_t;
using P = pair<ll, ll>;
const ll INF = 5e15;
const ll MOD = 1e9 + 7;

ll N;

struct Cost {
    ll cost;
    ll idx;
    bool A;
    Cost(ll c, ll i, bool A) : cost(c), idx(i), A(A) {}
};

bool valid(const set<ll> &SA, const set<ll> &SB){
    if(SA.empty() || SB.empty()) return true;
    set<ll> tmp;
    for(ll e : SA) tmp.insert(e);
    for(ll e : SB) tmp.insert(e);
    return tmp.size() != N;
}

int main(){
    cin >> N;
    vector<Cost> v;
    for(ll i = 0; i < N; i++){
        ll a, b;
        cin >> a >> b;
        v.push_back(Cost(a, i, true));
        v.push_back(Cost(b, i, false));
    }
    sort(v.begin(), v.end(), [](const auto &a, const auto &b){ return a.cost < b.cost; });
    set<ll> SA, SB;
    ll ans = 0;
    for(ll i = 0; i < N; i++){
        (v[i].A ? SA : SB).insert(v[i].idx);
        ans += v[i].cost;
    }
    if(!valid(SA, SB)){
        if(v[N - 1].idx != v[N].idx){
            ans -= v[N - 1].cost;
            ans += v[N].cost;
        }else{
            ll v1 = v[N].cost - v[N - 2].cost;
            ll v2 = v[N + 1].cost - v[N - 1].cost;
            ans += min(v1, v2);
        }
    }
    cout << ans << endl;
    return 0;
}

Submission Info

Submission Time
Task C - Min Cost Cycle
User kcvlex
Language C++14 (GCC 5.4.1)
Score 700
Code Size 1284 Byte
Status AC
Exec Time 153 ms
Memory 15596 KB

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 1 ms 256 KB
sample-02.txt AC 1 ms 256 KB
sample-03.txt AC 1 ms 256 KB
subtask01-01.txt AC 1 ms 256 KB
subtask01-02.txt AC 100 ms 10476 KB
subtask01-03.txt AC 124 ms 10604 KB
subtask01-04.txt AC 2 ms 384 KB
subtask01-05.txt AC 92 ms 9200 KB
subtask01-06.txt AC 99 ms 9068 KB
subtask01-07.txt AC 121 ms 9068 KB
subtask01-08.txt AC 131 ms 13548 KB
subtask01-09.txt AC 90 ms 8944 KB
subtask01-10.txt AC 97 ms 8688 KB
subtask01-11.txt AC 105 ms 8300 KB
subtask01-12.txt AC 130 ms 13292 KB
subtask01-13.txt AC 70 ms 7152 KB
subtask01-14.txt AC 150 ms 13420 KB
subtask01-15.txt AC 128 ms 10092 KB
subtask01-16.txt AC 153 ms 14828 KB
subtask01-17.txt AC 148 ms 15084 KB
subtask01-18.txt AC 148 ms 13932 KB
subtask01-19.txt AC 129 ms 10988 KB
subtask01-20.txt AC 147 ms 14700 KB
subtask01-21.txt AC 152 ms 15596 KB
subtask01-22.txt AC 147 ms 13164 KB
subtask01-23.txt AC 129 ms 10476 KB
subtask01-24.txt AC 149 ms 14316 KB
subtask01-25.txt AC 150 ms 14956 KB