| Task: | Binge watching |
| Sender: | aalto25b_011 |
| Submission time: | 2025-09-10 17:49:51 +0300 |
| Language: | C++ (C++20) |
| Status: | READY |
| Result: | TIME LIMIT EXCEEDED |
| test | verdict | time | |
|---|---|---|---|
| #1 | ACCEPTED | 0.00 s | details |
| #2 | ACCEPTED | 0.00 s | details |
| #3 | ACCEPTED | 0.00 s | details |
| #4 | TIME LIMIT EXCEEDED | -- | details |
| #5 | ACCEPTED | 0.05 s | details |
| #6 | ACCEPTED | 0.58 s | details |
| #7 | ACCEPTED | 0.00 s | details |
| #8 | ACCEPTED | 0.00 s | details |
| #9 | ACCEPTED | 0.00 s | details |
Compiler report
input/code.cpp: In function 'int chain_movies(vpi&, vpi)':
input/code.cpp:40:15: warning: variable 'm' set but not used [-Wunused-but-set-variable]
40 | for (auto m : chain) {
| ^
input/code.cpp: In function 'int main()':
input/code.cpp:82:13: warning: variable 'm' set but not used [-Wunused-but-set-variable]
82 | for (auto m : chain) {
| ^Code
// #include <bits/stdc++.h>
#include <ios>
#include <iostream>
#include <vector>
// #include <iostream>
using namespace std;
typedef long long ll;
typedef vector<int> vi;
typedef pair<int, int> pi;
typedef vector<pair<int, int>> vpi;
#define F first
#define S second
#define PB push_back
#define MP make_pair
#define DO_DBG 0
#if DO_DBG
#define DBG(x) cerr << x << "\n";
#else
#define DBG(x)
#endif
int chain_movies(vpi &all_movies, vpi chain) {
bool nomore = true;
int max = 0;
for (auto m : all_movies) {
if (chain.empty() || (m.F >= chain.back().S)) {
nomore = false;
vpi nc = chain;
nc.push_back(m);
int chain_len = chain_movies(all_movies, nc);
if (chain_len > max) {
max = chain_len;
}
}
}
if (nomore) {
DBG("NEW CHAIN:")
for (auto m : chain) {
DBG("start: " << m.F << ", end: " << m.S)
}
DBG("size: " << chain.size() << "\n")
return chain.size();
} else {
return max;
}
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
DBG("INIT")
int n;
cin >> n;
vpi movies;
for (int i = 0; i < n; i++) {
int start, end;
cin >> start >> end;
movies.PB(MP(start, end));
}
vpi chain;
while (1) {
int earliest_end = 0;
pi nxt = {};
for (auto m : movies) {
if ((earliest_end == 0 || m.S < earliest_end) &&
(chain.empty() || m.F >= chain.back().S)) {
earliest_end = m.S;
nxt = m;
}
}
if (earliest_end == 0) {
break;
}
chain.push_back(nxt);
}
DBG("NEW CHAIN:")
for (auto m : chain) {
DBG("start: " << m.F << ", end: " << m.S)
}
DBG("size: " << chain.size() << "\n")
cout << chain.size() << "\n";
}
Test details
Test 1
Verdict: ACCEPTED
| input |
|---|
| 10 6 7 4 5 8 9 2 3 ... |
| correct output |
|---|
| 10 |
| user output |
|---|
| 10 |
Test 2
Verdict: ACCEPTED
| input |
|---|
| 10 1 1000 1 1000 1 1000 1 1000 ... |
| correct output |
|---|
| 1 |
| user output |
|---|
| 1 |
Test 3
Verdict: ACCEPTED
| input |
|---|
| 10 404 882 690 974 201 255 800 933 ... |
| correct output |
|---|
| 4 |
| user output |
|---|
| 4 |
Test 4
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 200000 177494 177495 157029 157030 6030 6031 15209 15210 ... |
| correct output |
|---|
| 200000 |
| user output |
|---|
| (empty) |
Test 5
Verdict: ACCEPTED
| input |
|---|
| 200000 1 1000000000 1 1000000000 1 1000000000 1 1000000000 ... |
| correct output |
|---|
| 1 |
| user output |
|---|
| 1 |
Test 6
Verdict: ACCEPTED
| input |
|---|
| 200000 82334756 323555178 958182284 981100325 649818003 678160906 801994655 889397498 ... |
| correct output |
|---|
| 725 |
| user output |
|---|
| 725 |
Test 7
Verdict: ACCEPTED
| input |
|---|
| 3 1 1000 2 3 5 6 |
| correct output |
|---|
| 2 |
| user output |
|---|
| 2 |
Test 8
Verdict: ACCEPTED
| input |
|---|
| 3 3 4 5 6 7 8 |
| correct output |
|---|
| 3 |
| user output |
|---|
| 3 |
Test 9
Verdict: ACCEPTED
| input |
|---|
| 2 1 2 3 4 |
| correct output |
|---|
| 2 |
| user output |
|---|
| 2 |
