Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- #include <vector>
- #include <queue>
- #include <iostream>
- #include <string>
- #include <bitset>
- #include <algorithm>
- using namespace std;
- int N;
- int soluzioni[100100];
- struct Corso{
- int inizio, fine, crediti;
- };
- Corso corsi[100100];
- int main(){
- ifstream in;
- ofstream out;
- ios_base::sync_with_stdio(0);
- cin.tie(0);
- in.open("input.txt");
- out.open("output.txt");
- in >> N;
- for(int i = 0; i < N; i++)
- in >> corsi[i].inizio >> corsi[i].fine >> corsi[i].crediti;
- soluzioni[N-1] = corsi[N-1].crediti;
- for(int i = N-1; i >= 0; i--)
- {
- int massimo = 0;
- for(int j = N-1; j > i; j--)
- {
- if(soluzioni[j] > massimo && (corsi[j].fine < corsi[i].inizio ||
- corsi[j].inizio > corsi[i].fine))
- massimo = soluzioni[j];
- }
- soluzioni[i] = massimo + corsi[i].crediti;
- }
- out << *max_element(soluzioni, soluzioni+N);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement