Pagini recente » Cod sursa (job #132529) | Cod sursa (job #2745090) | Cod sursa (job #795093) | Cod sursa (job #3032960) | Cod sursa (job #50069)
Cod sursa(job #50069)
#include <cstdio>
#include <cstdlib>
#include <ctime>
#define maxn 128
#include <algorithm>
using namespace std;
int c[maxn][maxn];
int n;
void solve()
{
int x[maxn], i, j, sum, smin=0x3f3f3f3f;
for(i=1;i<=n;i++) x[i]=i;
random_shuffle(x+1, x+n+1);
int p, q, ntimes=100000;
int ax;
for(i=0;i<ntimes;++i)
{
p=(rand()%n)+1;
q=(rand()%n)+1;
if(p==q) continue;
if(c[p][x[p]]+c[q][x[q]]>c[p][x[q]]+c[q][x[p]])
{
ax=x[p];
x[p]=x[q];
x[q]=ax;
continue;
}
}
for(i=1;i<=n;i++) sum+=c[i][x[i]];
freopen("cc.out", "w", stdout);
printf("%d\n", sum);
}
int main()
{
time_t s;
time(&s);
srand(s%666013);
freopen("cc.in", "r", stdin);
scanf("%d\n", &n);
int i, j;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++) scanf("%d ", &c[i][j]);
solve();
return 0;
}