Cod sursa(job #1149672)

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

using namespace std;

FILE *in;
FILE *o;

int p;
int v1[300001];
int poz[30001];

void cit()
{
    int i;
    in=fopen("congr.in","r");
    fscanf(in,"%d",&p);
    for(i=1;i<=p;i++)
    {
        fscanf(in,"%d",&v1[i]);
        v1[0]+=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(v1[0]%p)
    {
        i=1+rand()%p;
        j=p+1+rand()%(p-1);
        v1[0]-=v1[i];
        v1[0]+=v1[j];
        aux=v1[j];
        v1[j]=v1[i];
        v1[i]=aux;
        paux=poz[j];
        poz[j]=poz[i];
        poz[i]=paux;
    }
}

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;
}