Pagini recente » Cod sursa (job #3210738) | Cod sursa (job #2935890) | Cod sursa (job #141584) | Cod sursa (job #1234183) | Cod sursa (job #197749)
Cod sursa(job #197749)
#include <cstring>
#include <fstream>
using namespace std;
const char FILEIN[] = "reconst.in";
const char FILEOUT[] = "reconst.out";
const int MAX_N = 2048;
ifstream fin(FILEIN);
ofstream fout(FILEOUT);
int N, M;
int End[MAX_N];
int Sum[MAX_N];
int V[MAX_N];
void Insert(int A, int B, int R) {
if (End[A] == -1) {
End[A] = B;
Sum[A] = R;
return;
}
if (End[A] < B)
Insert(End[A]+1, B, R-Sum[A]);
if (End[A] > B) {
Insert(B+1, End[A], Sum[A]-R);
End[A] = B;
Sum[A] = R;
}
}
int main() {
memset(End, -1, sizeof(End));
fin >> N >> M;
for (int i = 0; i < M; ++i) {
int A, B, R;
fin >> A >> B >> R;
Insert(A, B, R);
}
for (int i = N; i; --i)
if (End[i] > -1) {
int sum = 0;
for (int j = i; j <= End[i]; ++j)
sum += V[j];
V[i] = Sum[i]-sum;
}
for (int i = 1; i <= N; ++i)
fout << V[i] << " ";
}