Pagini recente » Cod sursa (job #2990050) | Cod sursa (job #2966757) | Cod sursa (job #2305343) | Cod sursa (job #2386364) | Cod sursa (job #2759698)
#include <bits/stdc++.h>
using namespace std;
ifstream f("reconst.in");
ofstream g("reconst.out");
int din[2005][2005],sol[2005],n,m,i,x,y,z,j;
vector <int> v[2005],v2[2005];
int main()
{
f>>n>>m;
for (i=1;i<=m;i++)
{
f>>x>>y>>z;
din[x][y]=z;
v[x].push_back(y);
}
for (i=1;i<=n;i++)
{
sort (v[i].begin(),v[i].end());
for (j=1;j<v[i].size();j++)
{
int poz1=v[i][j-1],poz2=v[i][j];
v[poz1+1].push_back(poz2);
din[poz1+1][poz2]=din[i][poz2]-din[i][poz1];
}
}
for (i=1;i<=n;i++)
{
for (j=0;j<v[i].size();j++)
{
v2[v[i][j]].push_back(i);
}
}
for (i=n;i>=1;i--)
{
sort (v2[i].begin(),v2[i].end());
for (j=(int)v2[i].size()-2;j>=0;j--)
{
int poz1=v2[i][j],poz2=v2[i][j+1];
v2[poz1].push_back(poz2-1);
din[poz1][poz2-1]=din[poz1][i]-din[poz2][i];
}
}
for (i=1;i<=n;i++)
{
sol[i]=din[i][i];
g<<sol[i]<<" ";
}
return 0;
}