Pagini recente » Cod sursa (job #2370334) | Cod sursa (job #1326726) | Cod sursa (job #537295) | Cod sursa (job #700327) | Cod sursa (job #1395300)
#include <cstdio>
#include <cstdlib>
#include <ctime>
#define DMAX 300005
using namespace std;
FILE*fin=fopen("congr.in","r");
FILE*fout=fopen("congr.out","w");
int p;
int v[2*DMAX];
int index[2*DMAX];
long long int suma;
void citire();
void rezolvare();
int verif();
void swap(int a,int b);
void afisare();
int main()
{
srand(time(NULL));
citire();
rezolvare();
afisare();
return 0;
}
void citire()
{
int i;
fscanf(fin,"%d",&p);
for (i=1;i<=2*p-1;i++)
{fscanf(fin,"%d",&v[i]);
index[i]=i;
}
}
void rezolvare()
{
int i,poz1,poz2;
for (i=1;i<=p;i++) suma+=v[i];
while ( suma%p!=0 )
{
poz1=rand()%(p)+1;
poz2=p+ rand()%(p-1)+1;
suma=suma+v[poz2]-v[poz1];
swap(poz1,poz2);
}
}
void swap(int a,int b)
{
int aux;
aux=v[a]; v[a]=v[b]; v[b]=aux;
aux=index[a]; index[a]=index[b]; index[b]=aux;
}
void afisare()
{
int i;
for (i=1;i<=p;i++)
fprintf(fout,"%d ",index[i]);
fprintf(fout,"\n");
}