Problem sa zadatkom

Zadatak “Najbrojniji presek intervala”:Zadatak
Može li neko da mi objasni zašto ovaj kod ne radi, specifično na test primerima 2 i 7(Wrong answer) na ostalim test primerima je OK
Zadatak je rešilo 0% tako da je moguća greška u primerima?

#include iostream>
#include algorithm>
using namespace std;
int main() {

int n;
unsigned long int k[50000][2],a[50000],b[50000],niz[100000];

cin>>n;  //ulaz
for(int i=0;i<n;i++){
	for(int j=0;j<2;j++)
	cin>>k[i][j];
}


for(int i=0;i<n;i++){ //deklarisanje pomocnih nizova
	a[i]=k[i][0];
	b[i]=k[i][1];
}

sort(a, a+n); //sortiranje 2 niza
sort(b, b+n);


int y=2*n; //duzina niza
int v=0;
for(int i=0;i<n;i++){
	for(int j=0;j<2;j++){
		niz[v]=k[i][j];
		v++;
	}
}
sort(niz, niz+y);

unsigned long int niz1[100000]; //novi niz bez duplikata
int l=0;
 for(int i=0;i<y;i++){
 	if(niz[i]!=niz[i+1]){
	niz1[l]=niz[i];
	l++;
 }}
int x=0;
unsigned long int f[100000];

for(int i=0;i<l;i++){  
	for(int j=0;j<=n;j++){
		if(niz1[i]==a[j]) x++;
		if(niz1[i]==b[j]) x--;
	}
	f[i]=x; //broj gostiju u svakom trenutku
}
int resenje=f[0];  //najveci clan niza f predstavlja najveci broj gostiju u jednom trenutku
for(int i=0;i<l;i++)
if(f[i]>resenje) resenje=f[i];

cout<<resenje; //resenje
return 0;

}

Par stvari koje mozda i nisu problem ali mogu biti:

  • kad eliminises duplikate poredis niz[i] != niz[i+1], sto za i == y-1 poredi sa elementom koji moze biti van niza
  • slicno, petlja koja broji goste (for(int j=0; j<=n; j++) ) ide do n, a ne n-1, tako da moze citati “iza” nizova a i b

Pokusao sam da promenim, opet isti problem

verovatno je problem u test primerima, ja sam rešio malo jednostavnije i javlja mi grešku WA za ista dva slučaja, a svih 25 test primera sa prošlogodišnjeg takmičenja mi prolazi ok

#include
#include

using namespace std;

int main()
{
int n;
cin >> n;

int a[n];
int b[n];
for(int i = 0; i < n; i++)
    cin >> a[i] >> b[i];

sort(a,a+n);
sort(b,b+n);

int i = 0;
int j = 0;
int s = 0;
int m = 0;
while(i < n || j < n) {
    if(a[i] == b[j]) {
        i++;
        j++;
    }
    else
    if(a[i] < b[j]) {
        i++;
        s++;
        m = max(s,m);
    }
    else {
        j++;
        s--;
    }
}
cout << m << endl;
return 0;

}

Problem je sigruno u test primerima, meni isto ne prolaze 2 i 7 primer a na takmicenju sam prosle godine imao sve poene.

Hvala ja sam često imao isti problem, spao mi kamen sa srca

Поправљено је