88442024-02-01 16:16:39KristófLeghosszabb béke (75 pont)cpp17Accepted 75/7568ms6340 KiB
#include <iostream>
#include <vector>
using namespace std;

struct harc{

int kezd;
int veg;


}typedef harc;

int main()
{
    int nap;
    int n;
    cin>>nap>>n;
    int kezd[n];
    int veg[n];
    int haboru[nap+1];
    vector <harc> hab;
    for(int i=0;i<nap;i++){
        haboru[i]=-1;
    }
    for(int i=0;i<n;i++){
        cin>>kezd[i];
        cin>>veg[i];

        if(haboru[kezd[i]]<veg[i]){
        haboru[kezd[i]]=veg[i];
    }
    }
    harc x;
    for(int i=0;i<nap;i++){
        if(haboru[i]!=-1){
                x.kezd=i;
                x.veg=haboru[i];
            if(hab.size()==0){
                hab.push_back(x);
            }
        else{
            if(x.kezd>hab[hab.size()-1].veg){
                hab.push_back(x);
            }
        else if(x.veg>hab[hab.size()-1].veg){
            hab[hab.size()-1].veg=x.veg;
        }
        }
        }

    }
    int max=hab[0].kezd-1;
    int kezd2=1;
    for(int i=0;i<hab.size()-1;i++){
        if(hab[i+1].kezd-hab[i].veg-1>max){
            max=hab[i+1].kezd-hab[i].veg-1;
            kezd2=hab[i].veg+1;
        }

    }

    if(max<nap-hab[hab.size()-1].veg){
        max=nap-hab[hab.size()-1].veg;
        kezd2=hab[hab.size()-1].veg+1;
    }
    if(max==0){
        cout<<-1;
    }
     else cout<<max<<" "<<kezd2;

    return 0;
}
SubtaskSumTestVerdictTimeMemory
base75/75
1Accepted0/03ms1816 KiB
2Accepted0/068ms4372 KiB
3Accepted3/33ms2284 KiB
4Accepted3/33ms2512 KiB
5Accepted3/32ms2652 KiB
6Accepted3/32ms2620 KiB
7Accepted3/32ms2592 KiB
8Accepted4/43ms2536 KiB
9Accepted4/43ms2632 KiB
10Accepted4/43ms2644 KiB
11Accepted4/46ms2948 KiB
12Accepted4/48ms3292 KiB
13Accepted4/46ms3508 KiB
14Accepted4/46ms3696 KiB
15Accepted4/47ms3928 KiB
16Accepted4/47ms4080 KiB
17Accepted4/48ms4380 KiB
18Accepted4/48ms4556 KiB
19Accepted4/461ms6152 KiB
20Accepted4/461ms6180 KiB
21Accepted4/459ms6016 KiB
22Accepted4/461ms6340 KiB