feat: new alternative TLE solution, updated input value ranges
This commit is contained in:
40
inclusao-de-subintervalos/src/TLE.cpp
Normal file
40
inclusao-de-subintervalos/src/TLE.cpp
Normal file
@@ -0,0 +1,40 @@
|
||||
#include <bits/stdc++.h>
|
||||
|
||||
using namespace std;
|
||||
|
||||
int main(){
|
||||
int n; cin >> n;
|
||||
|
||||
vector<pair<int, int>> intervals(n);
|
||||
for (int i = 0; i < n; i++) {
|
||||
cin >> intervals[i].first;
|
||||
cin >> intervals[i].second;
|
||||
}
|
||||
|
||||
int count = 0;
|
||||
for (int i = 0; i < n; i++) {
|
||||
bool isInsideAnotherInterval = false;
|
||||
for (int j = 0; j < n; j++) {
|
||||
if (i == j) continue;
|
||||
|
||||
if (intervals[j].first <= intervals[i].first && intervals[j].second >= intervals[i].second) {
|
||||
if (intervals[j].first == intervals[i].first && intervals[j].second == intervals[i].second) {
|
||||
if (j < i) {
|
||||
isInsideAnotherInterval = true;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
isInsideAnotherInterval = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!isInsideAnotherInterval) {
|
||||
count++;
|
||||
}
|
||||
}
|
||||
|
||||
cout << count << endl;
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -6,7 +6,7 @@ using namespace std;
|
||||
const int MIN_N = 1;
|
||||
const int MAX_N = 1e5;
|
||||
const int MIN_INTERVAL = 1;
|
||||
const int MAX_INTERVAL = 1e4;
|
||||
const int MAX_INTERVAL = 1e5;
|
||||
|
||||
const int rnd_test_n = 30;
|
||||
|
||||
@@ -39,8 +39,9 @@ vector<string> generate_manual_tests() {
|
||||
vector<pair<int, int>> generateRandomIntervals(int size) {
|
||||
vector<pair<int, int>> intervals(size);
|
||||
for (int i = 0; i < size; i++) {
|
||||
intervals[i].first = rnd.next(MIN_INTERVAL, MAX_INTERVAL - 1);
|
||||
intervals[i].second = rnd.next(intervals[i].first, MAX_INTERVAL);
|
||||
int point = rnd.next(MIN_INTERVAL, MAX_INTERVAL);
|
||||
intervals[i].first = point;
|
||||
intervals[i].second = rnd.next(point, min(point + 5, MAX_INTERVAL));
|
||||
}
|
||||
return intervals;
|
||||
}
|
||||
@@ -69,7 +70,12 @@ vector<string> generate_random_tests() {
|
||||
}
|
||||
|
||||
string extreme_test_1(){
|
||||
return(output_tc(generateRandomIntervals(MAX_N)));
|
||||
vector<pair<int, int>> intervals(MAX_N);
|
||||
for (int i = 0; i < MAX_N; i++) {
|
||||
intervals[i].first = i + 1;
|
||||
intervals[i].second = i + 1;
|
||||
}
|
||||
return(output_tc(intervals));
|
||||
}
|
||||
|
||||
vector<string> generate_extreme_tests(){
|
||||
|
||||
@@ -9,9 +9,9 @@ int main(int argc, char* argv[]) {
|
||||
int n = inf.readInt(1, 1e5, "n");
|
||||
inf.readEoln();
|
||||
for (int i = 0; i < n; i++) {
|
||||
int l = inf.readInt(1, 1e4, "li");
|
||||
int l = inf.readInt(1, 1e5, "li");
|
||||
inf.readSpace();
|
||||
int r = inf.readInt(1, 1e4, "ri");
|
||||
int r = inf.readInt(1, 1e5, "ri");
|
||||
inf.readEoln();
|
||||
ensuref(l <= r, "Interval end time must be at least interval start time");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user