Pagini recente » Cod sursa (job #2864963) | Cod sursa (job #817771) | Cod sursa (job #2754301) | Cod sursa (job #544998) | Cod sursa (job #1395251)
#include <cstdio>
#include <cstdlib>
#include <ctime>
#define DMAX 600010
using namespace std;
int p, v[DMAX], sum;
void citire();
void rez();
void afisare();
int main()
{
srand(time(NULL));
citire();
rez();
afisare();
return 0;
}
void citire()
{
int i;
FILE*fin=fopen ("congr.in", "r");
fscanf(fin, "%d", &p);
for (i=1; i<2*p; ++i)
fscanf(fin, "%d", &v[i]);
fclose(fin);
}
void rez()
{
int i, poz, poz2, aux;
for (i=1; i<=p; ++i)
sum+=v[i];
if (sum%p==0)//awsum
return;
srand(time(NULL));
while (1)
{
//aleg o pozitie random
poz=rand()%p+1;
poz2=rand()%p+(2*p-1)-(p+1)+1;
aux=v[poz];
v[poz]=v[poz2];
v[poz2]=aux;
sum-=v[poz2];
sum+=v[poz];
if (sum%p==0) break;
}
return;
}
void afisare()
{
int i;
FILE*fout=fopen ("congr.out", "w");
for (i=1; i<=p; ++i)
fprintf(fout, "%d ", v[i]);
fprintf(fout, "\n");
fclose(fout);
return;
}