Pagini recente » Cod sursa (job #602768) | Cod sursa (job #185634) | Cod sursa (job #1489057) | Cod sursa (job #2458390) | Cod sursa (job #2780080)
#include<iostream>
#include<fstream>
#include<cstring>
#include<bits/stdc++.h>
#include<iomanip>
using namespace std;
ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");
int gcd(int a,int b, int &x, int &y)
{
if(b == 0)
{
x = 1,
y = 0;
return a;
}
int d,x0,y0;
d = gcd(b,a%b,x0,y0);
x = y0;
y = x0-(a/b)*y0;
return d;
}
void solve()
{
int a,b,c,x,y,d;
fin>>a>>b>>c;
assert(-1000000000 <= a && a <= 1000000000);
assert(-1000000000 <= b && b <= 1000000000);
assert(-2000000000 <= c && c <= 2000000000 && c != 0);
x = y = 0;
d = gcd(a,b,x,y);
if(c%d == 0)
{
fout<<x*(c/d)<<" "<<y*(c/d)<<'\n';
}
else
fout<<"0 0"<<'\n';
}
int cmmdc(int a,int b)
{
if(b==0)
return a;
return cmmdc(b,a%b);
}
int main()
{
ios::sync_with_stdio(0);
fin.tie(0);
int n;
fin>>n;
vector<vector<int>>mat(n,vector<int>(n,0));
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
fin>>mat[i][j];
}
}
for(int k=0;k<n;k++)
{
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
if(i!=j && j!=k && i!=k && mat[i][j] > mat[i][k] + mat[k][j])
{
mat[i][j] = mat[i][k] + mat[k][j];
}
}
}
}
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
fout<<mat[i][j]<<" ";
}
fout<<'\n';
}
fout.tie(0);
fin.close();
fout.close();
return 0;
}