Cod sursa(job #1154414)

Utilizator scipianusFMI Ciprian Olariu scipianus Data 26 martie 2014 10:15:11
Problema Congr Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <fstream>
#include <ctime>
#include <cstdlib>
#include <algorithm>
using namespace std;
int P, v[600100], poz[600100];
long long sum;

int main()
{
	int i, j;
	ifstream fin("congr.in");
	fin >> P;
	for(i = 1; i <= P; ++i)
	{
		fin >> v[i];
		poz[i] = i;
		v[i] %= P;
		sum += 1LL * v[i];
	}
	for(i = P + 1; i < 2 * P; ++i)
	{
		fin >> v[i];
		poz[i] = i;
	}
	fin.close();
	
	srand(time(NULL));
	while(sum % P)
	{
		i = rand() % P + 1;
		j = rand() % (P - 1) + P + 1;
		sum -= 1LL * v[i];
		sum += 1LL * v[j];
		swap(v[i], v[j]);
		swap(poz[i], poz[j]);
	}
	
	ofstream fout("congr.out");
	for(i = 1; i <= P; ++i)
		fout << poz[i] << ' ';
	fout << "\n";
	fout.close();
	return 0;
}