Cod sursa(job #466698)

Utilizator Mishu91Andrei Misarca Mishu91 Data 27 iunie 2010 13:27:46
Problema Congr Scor 50
Compilator cpp Status done
Runda Stelele Informaticii 2010, clasele X-XII, Ziua 1 Marime 0.6 kb
#include <fstream>
#include <algorithm>
#include <cstdlib>
#include <ctime>

using namespace std;

const int MAX_P = 300005; 

ifstream fin ("congr.in");
ofstream fout ("congr.out");

int P, V[2*MAX_P], R[2*MAX_P];

void citire() {
	fin >> P;

	for(int i = 1; i < 2*P; ++i) {
		fin >> V[i];
		V[i] %= P;
		R[i] = i;
	}
}

void solve() {
	srand(time(NULL));
	while(1) {
		random_shuffle(R+1, R+2*P);
		int sum = 0;
		for(int i = 1; i <= P; ++i) {
			sum = (sum + V[R[i]]) % P;
		}

		if(sum == 0) {
			for(int i = 1; i <= P; ++i)
				fout << R[i] << " ";
			break;
		}
	}
}

int main() {
	citire();
	solve();
}