2155 2022. 12. 26 18:22:46 bzsofia Találkozás cpp11 Hibás válasz 9/55 82ms 7720 KiB
//#include <fstream>
#include <iostream>
#include <vector>
#include <algorithm>
#include <queue>

using namespace std;

//ifstream fin("be.in");

struct adat
{
    int jon, megy;
};

int i, n, j, mini, minj, tav;
priority_queue <pair <int, int>> mp;

bool comp(adat a, adat b)
{
    if (a.megy==b.megy) return a.jon<b.jon;

    return a.megy<b.megy;
}

int main()
{
    cin>>n;
    tav=n;
    int fele=n/2+n%2;
    vector <adat> x(n+1);

    for (i=1; i<=n; ++i)
    {
        cin>>x[i].jon>>x[i].megy;
    }

    sort(x.begin()+1, x.end(), comp);

    for (i=1; i<fele; ++i)
        mp.push({x[i].jon, i});

    for (i=fele; i<=n; ++i)
    {
        mp.push({x[i].jon, i});

        while (!mp.empty() && mp.top().second<i-fele+1)
            mp.pop();

        //cout<<x[i-n/2+1].megy<<" "<<mp.top().first<<"\n";
        if (mp.top().first<x[i-fele+1].megy)
        {
            tav=1;
            minj=mini=mp.top().second;
        }else if (tav>mp.top().first-x[i-fele+1].megy+1)
        {
            tav=mp.top().first-x[i-fele+1].megy+1;
            mini=x[i-fele+1].megy;
            minj=mp.top().first;
        }
    }

    cout<<tav<<"\n"<<mini<<" "<<minj;

    return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 9/55
1 Elfogadva 0/0 3ms 1684 KiB
2 Hibás válasz 0/0 82ms 5556 KiB
3 Részben helyes 1/2 2ms 2200 KiB
4 Elfogadva 2/2 2ms 2420 KiB
5 Elfogadva 2/2 2ms 2628 KiB
6 Hibás válasz 0/2 2ms 2832 KiB
7 Hibás válasz 0/2 2ms 2916 KiB
8 Hibás válasz 0/3 2ms 2904 KiB
9 Hibás válasz 0/3 2ms 3128 KiB
10 Hibás válasz 0/3 2ms 3196 KiB
11 Hibás válasz 0/3 6ms 3600 KiB
12 Hibás válasz 0/3 8ms 3772 KiB
13 Hibás válasz 0/3 8ms 3772 KiB
14 Hibás válasz 0/3 17ms 4336 KiB
15 Hibás válasz 0/3 16ms 4420 KiB
16 Hibás válasz 0/3 14ms 4500 KiB
17 Hibás válasz 0/3 16ms 4488 KiB
18 Hibás válasz 0/3 25ms 4716 KiB
19 Részben helyes 1/3 82ms 7592 KiB
20 Elfogadva 3/3 71ms 7656 KiB
21 Hibás válasz 0/3 82ms 7720 KiB
22 Hibás válasz 0/3 82ms 7544 KiB