Pagini recente » Cod sursa (job #154036) | Cod sursa (job #2578943) | Cod sursa (job #91691) | Cod sursa (job #2713717) | Cod sursa (job #1076355)
#include <iostream>
#include <fstream>
#include <cstring>
#include <vector>
#include <queue>
#include <bitset>
#include <list>
#include <algorithm>
#include <string>
using namespace std;
#define INF 0xFFFFFFFF
unsigned int n;
unsigned int a[105][105];
class cApp
{
public:
cApp(const char *filename)
{
char inFile[30];
strcpy(inFile, filename);
strcat(inFile, ".in");
char outFile[30];
strcpy(outFile, filename);
strcat(outFile, ".out");
f.open(inFile, ios_base::in);
g.open(outFile, ios_base::out);
}
~cApp()
{
f.close();
g.close();
}
void read()
{
f >> n;
unsigned int cost;
for (unsigned int i = 1; i <= n; ++i)
for (unsigned int j = 1; j <= n; ++j)
{
f >> cost;
a[i][j] = cost;
}
}
void write()
{
for (unsigned int i = 1; i <= n; ++i)
{
for (unsigned int j = 1; j <= n; ++j)
g << a[i][j] << " ";
g << "\n";
}
}
fstream f, g;
};
void roy_floyd()
{
unsigned int i, j, k;
for (k = 1; k <= n; ++k)
for (i = 1; i <= n; ++i)
for (j = 1; j <= n; ++j)
if (a[i][j] > a[i][k] + a[k][j])
a[i][j] = a[i][k] + a[k][j];
}
int main()
{
cApp app("royfloyd");
app.read();
roy_floyd();
app.write();
return 0;
}