Sejam os vetores que representam o horário mínimo e máximo de chegada do aluno , respectivamente, criamos um vetor , onde quantidade de aluno que podem chegar na casa de João no horário , a partir dessa ideia, basta achar o máximo entre , mas para achar esta quantidade basta percorrer para todos os , e adicionar 1 em para , pois encontramos um aluno que pode chegar no horário . Segue o código:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <bits/stdc++.h> | |
using namespace std; | |
int a[100100], b[100100], v[100100]; | |
int main() { | |
int n, ans = 0; | |
cin >> n; | |
for(int i = 0; i < n; i++){ | |
cin >> a[i] >> b[i]; | |
} | |
for(int i = 0; i < n; i++){ | |
for(int j = a[i]; j <= b[i]; j++){ | |
v[j]++; | |
} | |
} | |
for(int i = 1; i <= 100000; i++){ | |
ans = max(ans, v[i]); | |
} | |
cout << ans << "\n"; | |
return 0; | |
} |