HOTEL-practice problem...what is my mistake??

#include
using namespace std;

int arrive[1000];
int leave[1000];
int main()
{

``````int test,n,max,count;
cin>>test;
while(test--)
{   max=0;
cin>>n;
for(int i=0;i<n;++i)
{

cin>>arrive[i];
}
for(int i=0;i<n;++i)
{

cin>>leave[i];
}
for(int i=0;i<n;++i)
{
count=0;
for(int j=0;j<n;++j)
{
if (!(leave[j]<=arrive[i] or arrive[j]>=leave[i]))
{
++count;
}
if(count>max)
max=count;
}

}
cout<<count<<"\n";
}
return 0;
``````

}

instead of “cout<<max<<endl” you have written “cout<<count<<endl;”.
even after correcting that your logic is wrong.
consider the test case
1
4
1 3 5 9
4 12 8 10
answer is 2 where as your program prints 4.
for a given interval you are calculating the maximum no of intervals which have intersection with the given interval.
now in the given test case 2nd interval has intersection with 1,2,3 and 4 intervals and the answer is printed as 4 rather than 2.
hope this helps

start from hr=0; increase hour(hr++), if you encounter arrival(arr[i]) then increase guest(count++), if you encounter departure(dep[i]), then decrease guest(count–). meanwhile, keep record of maximum guest number(if(count>max) max=count). print out max.

//