feat: new alternative TLE solution, updated input value ranges

This commit is contained in:
2026-02-13 00:08:49 -03:00
parent 4821510c38
commit 14bc7ffcc7
70 changed files with 1118809 additions and 1118763 deletions

View 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;
}

View File

@@ -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(){

View File

@@ -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");
}