Pagini recente » Cod sursa (job #3222635) | Cod sursa (job #2708997) | Cod sursa (job #622010) | Cod sursa (job #1913429) | Cod sursa (job #2091932)
#include <fstream>
#include <algorithm>
#include <vector>
#define VAL 50015
using namespace std;
ifstream fin("gardieni.in");
ofstream fout("gardieni.out");
struct interval
{
int be, en, cost;
};
interval P[VAL];
int N, T, i, j, mn, k;
long long ANS;
vector <interval> S[2];
bool cmp(interval A, interval B)
{
if (A.be==B.be)
return A.en<B.en;
return A.be<B.be;
}
int main()
{
fin >> N >> T;
for (i=1; i<=N; i++)
fin >> P[i].be >> P[i].en >> P[i].cost;
sort(P+1, P+N+1, cmp);
for (i=1; i<=T; i++)
{
S[i % 2].clear();
mn=(1 << 25);
for (j=0; j<S[1-(i % 2)].size(); j++)
{
if (S[1-(i % 2)][j].be<=i && i<=S[1-(i % 2)][j].en)
{
S[i % 2].push_back(S[1-(i % 2)][j]);
mn=min(mn, S[1-(i % 2)][j].cost);
}
}
while (P[k+1].be<=i && i<=P[k+1].en)
{
mn=min(mn, P[k+1].cost);
k++;
S[i % 2].push_back(P[k]);
}
ANS+=mn;
}
fout << ANS << '\n';
fin.close();
fout.close();
return 0;
}