/************************************************ * * * Controllare l'accampamento VR370108 * * * ************************************************/ #include #include #include #include using namespace std; vector intervalsStart; vector intervalsEnd; int N; int longestIntersection(int indexStart); int main(){ FILE *in; in = fopen("input.txt", "r"); assert(in); int a, b; fscanf(in, "%d", &N); for(int i = 0; i < N; i++){ fscanf(in, "%d %d", &a, &b); intervalsStart.push_back(a); intervalsEnd.push_back(b); } fclose(in); /*for(int i = 0; i < intervalsStart.size(); i++){ cout << intervalsStart.at(i); cout << " "; cout << intervalsEnd.at(i); cout << endl; }*/ int res = longestIntersection(0); FILE* output; output = fopen("output.txt", "w"); fprintf(output, "%d\n", res); return 0; } int longestIntersection(int indexStart){ int fine = intervalsEnd.at(indexStart); int maxlungh = 0; bool stop = false; for(int i = indexStart+1; (i < intervalsStart.size() && (!stop)); i++){ if(intervalsStart.at(i) <= fine){ int lungh = intervalsEnd.at(i) - intervalsStart.at(i); if(lungh > maxlungh){ maxlungh = lungh; indexStart = i; } } else { stop = true; indexStart = i; } } indexStart++; int intervalli = 0; if(indexStart <= N-1){ intervalli = 1 + longestIntersection(indexStart); } else { return intervalli; } return intervalli; }