Cod sursa(job #50068)

Utilizator gigi_becaliGigi Becali gigi_becali Data 6 aprilie 2007 19:53:47
Problema Cc Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#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=10000;
	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;
}