Pagini recente » Cod sursa (job #170412) | Cod sursa (job #1428798) | Cod sursa (job #2550474) | Cod sursa (job #2043897) | Cod sursa (job #1512374)
#include <cstdio>
#define DIM 2048
using namespace std;
int N, M, left, right, cost;
int EndOf[DIM];
int SumOf[DIM];
void setDistance (int left, int right, int cost) // ideea e sa scap de intervale incluse unu'n altu'
{
if (!EndOf[left])
{
EndOf[left] = right;
SumOf[left] = cost;
}
else
{
if (EndOf[left] < right)
{
setDistance (EndOf[left] + 1, right, cost - SumOf[left]);
}
else if (EndOf[left] > right)
{
setDistance (right + 1, EndOf[left], SumOf[left] - cost);
EndOf[left] = right;
SumOf[left] = cost;
}
}
return;
}
int main ()
{
freopen ("reconst.in" ,"r", stdin );
freopen ("reconst.out","w", stdout);
scanf ("%d %d", &N, &M);
for (int i = 1; i <= M; i ++)
{
scanf ("%d %d %d", &left, &right, &cost);
setDistance (left, right, cost);
}
for (int i = N; i >= 1; i --)
for (int j = i + 1; j <= EndOf[i]; j ++)
SumOf[i] -= SumOf[j];
for (int i = 1; i <= N; i ++)
printf ("%d ", SumOf[i]);
fclose (stdin );
fclose (stdout);
return 0;
}