Pagini recente » Cod sursa (job #2683678) | Cod sursa (job #827022) | Cod sursa (job #1813502) | Cod sursa (job #534999) | Cod sursa (job #3286199)
/*#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("zaruri.in");
ofstream fout("zaruri.out");
#define NMAX 3000
int MOD = 1000003;
int q, n, st, dr, dp[2][6 * NMAX + 1], rez[6 * NMAX + 1], ncurr = 1;
struct Zar
{
int n, st, dr, poz, s;
}v[100001];
int comp1(Zar a, Zar b)
{
return a.n < b.n;
}
int comp2(Zar a, Zar b)
{
return a.poz < b.poz;
}
int main()
{
fin >> q;
for(int i = 1; i <= q; i++)
{
fin >> v[i].n >> v[i].st >> v[i].dr;
v[i].poz = i;
v[i].s = 0;
}
sort(v + 1, v + q + 1, comp1);
for(int i = 1; i <= 6; i++)
dp[0][i] = 1;
for(int l = 1; l <= q; l++)
{
for(int i = ncurr; i <= v[l].n - 1; i++)
for(int j = 1; j <= 6 * NMAX + 1; j++)
for(int f = 1; f <= 6; f++)
if(j > f)
dp[i % 2][j] = (dp[i % 2][j] + dp[(i - 1) % 2][j - f]) % MOD;
if(v[l].n == v[l - 1].n)
v[l].s = (MOD + rez[v[l].dr] - rez[v[l].st - 1]) % MOD;
else{
for(int i = 1; i <= 6 * NMAX + 1; i++)
rez[i] = dp[(v[l].n - 1) % 2][i];
for(int i = 1; i <= 6 * NMAX + 1; i++)
rez[i] = (rez[i - 1] + rez[i]) % MOD;
v[l].s = (MOD + rez[v[l].dr] - rez[v[l].st - 1]) % MOD;
ncurr = v[l].n;
}
}
sort(v + 1, v + q + 1, comp2);
for(int i = 1; i <= q; i++)
fout << v[i].s << '\n';
return 0;
}
*/
#include <iostream>
#include <vector>
#include <fstream>
using namespace std;
ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");
int n, d[101][101], inf = 999999999;
int main()
{
fin >> n;
for(int i = 1; i <= n; i++)
{
for(int j = 1; j <= n; j++)
{
fin >> d[i][j];
if(d[i][j] == 0)
d[i][j] = inf;
}
}
for(int i = 1; i <= n; i++)
d[i][i] = 0;
for(int k = 1; k <= n; k++)
for(int i = 1; i <= n; i++)
for(int j = 1; j <= n; j++)
{
if(d[i][k] + d[k][j] < d[i][j])
d[i][j] = d[i][k] + d[k][j];
}
for(int i = 1; i <= n; i++)
{
for(int j = 1; j <= n; j++)
{
if(d[i][j] == inf)
fout << "0 ";
else fout << d[i][j] << " ";
}
fout << '\n';
}
return 0;
}