Pagini recente » Cod sursa (job #1827725) | Cod sursa (job #1942691) | Cod sursa (job #75738) | Cod sursa (job #2760948) | Cod sursa (job #1154425)
#include <fstream>
#include <ctime>
#include <cstdlib>
#include <algorithm>
using namespace std;
int P, v[600100], poz[600100], 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 += v[i];
if(sum >= P)
sum -= P;
}
for(i = P + 1; i < 2 * P; ++i)
{
fin >> v[i];
v[i] %= P;
poz[i] = i;
}
fin.close();
srand(time(NULL));
while(sum)
{
i = rand() % P + 1;
j = rand() % (P - 1) + P + 1;
if(v[i] == v[j])
continue;
sum = sum - v[i] + v[j] + P;
while(sum >= P)
sum -= P;
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;
}