Cod sursa(job #1149690)

Utilizator Maxim97Maxim Andrei Maxim97 Data 22 martie 2014 10:32:39
Problema Congr Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include <fstream>
#include <stdlib.h>     /* srand, rand */
#include <time.h>       /* time */

using namespace std;

FILE *in;
FILE *o;

int p;
long long int s;
int  v1[600001];
int poz[600001];

void cit()
{
    int i;
    in=fopen("congr.in","r");
    fscanf(in,"%d",&p);
    for(i=1;i<=p;i++)
    {
        fscanf(in,"%d",&v1[i]);
        s+=v1[i];
        poz[i]=i;
    }
    for(i=1;i<=p-1;i++)
    {
        fscanf(in,"%d",&v1[p+i]);
        poz[p+i]=p+i;
    }
    fclose(in);
}

void schimb()
{
    int i,j,aux,paux;
    while(s%p)
    {
        i=1+rand()%p;
        j=p+1+rand()%(p-1);
        s-=v1[i];
        s+=v1[j];
        swap(v1[i],v1[j]);
        swap(poz[i],poz[j]);
    }
}

void afis()
{
    int i;
    o=fopen("congr.out","w");
    for(i=1;i<p;i++)
    {
        fprintf(in,"%d ",poz[i]);
    }
    fprintf(in,"%d\n",poz[i]);
    fclose(o);
}

int main()
{
    srand (time(NULL));
    cit();
    schimb();
    afis();
    return 0;
}