Submission #3589614


Source Code Expand

#include <bits/stdc++.h>

#define MAX_N 100000

using namespace std;

typedef long long lint;

const lint sqrInf = (1e18) - 1;

lint rez;

int n;
int v[(MAX_N << 1) + 1];
lint sum[(MAX_N << 1) + 1];

int a[MAX_N + 1];
int b[MAX_N + 1];

int cate(int i, int a, int b)
{
    //cout << "NUMARAM " << v[i] << " " << a << " " << b << "\n";

    if(v[i] < a)
        return i;

    if(v[i] >= a && v[i] < b)
        return i - 1;

    return i - 2;
}

lint cautBin(int a, int b)
{
    if(a > b)
        swap(a, b);

    int i = 0;
    int pas = 1 << 17;
    while(pas != 0)
    {
        if(i + pas <= (n << 1) && cate(i + pas, a, b) < n)
            i += pas;

        pas >>= 1;
    }

   // cout << "ELEM " << a << " SI " << b << "\n";
   // cout << "SUNTEM " << i + 1 << " AVEM " << cate(i + 1, a , b) << " SUMA " << sum[i + 1] << " SCAD " << a * (v[i + 1] >= a) << " " << b * (v[i + 1] >= b) << "\n";

    if(i < (n << 1) && cate(i + 1, a, b) == n)
    {
        return sum[i + 1] - a * (v[i + 1] >= a) - b * (v[i + 1] >= b);
    }

    return sqrInf;
}

int main()
{
    cin >> n;

    int i;
    int k = 0;
    lint sa = 0, sb = 0;
    for(i = 1; i <= n; i ++)
    {
        cin >> a[i] >> b[i];
        v[++ k] = a[i];
        v[++ k] = b[i];

        sa += a[i];
        sb += b[i];
    }

    sort(v + 1, v + k + 1);
    for(int i = 1; i <= k; i ++)
    {
        sum[i] = sum[i - 1] + v[i];
       // cout << v[i] << " ";
    }
   // cout << "\n";

    rez = min(sa, sb);

    for(i = 1; i <= n; i ++)
        rez = min(rez, cautBin(a[i], b[i]));

    cout << rez << "\n";

    return 0;
}

Submission Info

Submission Time
Task C - Min Cost Cycle
User Coroian_David
Language C++14 (GCC 5.4.1)
Score 700
Code Size 1687 Byte
Status AC
Exec Time 130 ms
Memory 3328 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 89 ms 2432 KB
subtask01-03.txt AC 124 ms 3328 KB
subtask01-04.txt AC 2 ms 256 KB
subtask01-05.txt AC 82 ms 2304 KB
subtask01-06.txt AC 85 ms 2304 KB
subtask01-07.txt AC 121 ms 3200 KB
subtask01-08.txt AC 112 ms 3072 KB
subtask01-09.txt AC 79 ms 2176 KB
subtask01-10.txt AC 82 ms 2304 KB
subtask01-11.txt AC 106 ms 2816 KB
subtask01-12.txt AC 110 ms 2944 KB
subtask01-13.txt AC 64 ms 1792 KB
subtask01-14.txt AC 126 ms 3328 KB
subtask01-15.txt AC 128 ms 3328 KB
subtask01-16.txt AC 127 ms 3328 KB
subtask01-17.txt AC 128 ms 3328 KB
subtask01-18.txt AC 126 ms 3328 KB
subtask01-19.txt AC 128 ms 3328 KB
subtask01-20.txt AC 127 ms 3328 KB
subtask01-21.txt AC 129 ms 3328 KB
subtask01-22.txt AC 127 ms 3328 KB
subtask01-23.txt AC 130 ms 3328 KB
subtask01-24.txt AC 128 ms 3328 KB
subtask01-25.txt AC 127 ms 3328 KB