130322025-01-04 23:19:35ercseferencTalálkozáscpp17Időlimit túllépés 19/55300ms1520 KiB
#include <iostream>
//#include <fstream>
using namespace std;
int a[100001],b[100001],c[100001];
int main()
{
    int n,x,y,maxi=0; //ifstream f("szamok.txt"); f>>n;
    cin>>n;
    for(int i=0; i<n; i++){cin>>x>>y; a[x]+=1; a[y+1]-=1; c[x]+=1;
        if(maxi<y)maxi=y;}
    int s=0; for(int i=1; i<=maxi; i++){s=s+a[i]; b[i]=s;}
    int kezd, veg, tart=100002,k,j,delta; bool megvan;
    k=b[1]; j=2; while(k<(n+1)/2){k=k+c[j]; j++;} delta=k-b[1];
    tart=j-1; kezd=1; veg=j-1;
    for(int i=1; i<=maxi; i++){
        if(i+tart-1<=maxi) delta=delta-c[i]+c[i+tart-1];
        else{
            k=b[i]; j=i+1; megvan=0;
            while(!megvan && j<=maxi){k=k+c[j]; j++;
                if(k>=(n+1)/2)megvan=1;}
            if(megvan&&tart>j-i){tart=j-i; kezd=i; veg=j-1; delta=k-b[i];}}
        if((n+1)/2<=b[i]+delta){
            k=b[i]; j=i+1; megvan=0;
            while(!megvan && j<=maxi){k=k+c[j]; j++;
                if(k>=(n+1)/2)megvan=1;}
            if(megvan&&tart>j-i){tart=j-i; kezd=i; veg=j-1; delta=k-b[i];}}}
    cout<<tart<<endl<<kezd<<" "<<veg;
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base19/55
1Elfogadva0/01ms320 KiB
2Időlimit túllépés0/0284ms1336 KiB
3Elfogadva2/21ms320 KiB
4Elfogadva2/21ms500 KiB
5Elfogadva2/21ms320 KiB
6Elfogadva2/24ms552 KiB
7Elfogadva2/24ms472 KiB
8Elfogadva3/34ms500 KiB
9Elfogadva3/313ms540 KiB
10Elfogadva3/316ms552 KiB
11Időlimit túllépés0/3300ms824 KiB
12Időlimit túllépés0/3300ms824 KiB
13Időlimit túllépés0/3300ms800 KiB
14Időlimit túllépés0/3279ms824 KiB
15Időlimit túllépés0/3284ms940 KiB
16Időlimit túllépés0/3300ms856 KiB
17Időlimit túllépés0/3300ms824 KiB
18Időlimit túllépés0/3284ms1336 KiB
19Időlimit túllépés0/3287ms1336 KiB
20Időlimit túllépés0/3298ms672 KiB
21Időlimit túllépés0/3300ms1520 KiB
22Időlimit túllépés0/3287ms1336 KiB