Cod sursa(job #1575026)

Utilizator antanaAntonia Boca antana Data 21 ianuarie 2016 01:23:34
Problema Congr Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <cstdio>
#include<ctime>
#include<cstdlib>
#define MAX 300000
using namespace std;
int v[2*MAX+1], poz[2*MAX+1];
inline void interschimba(int a, int b)
{
    int aux;
    aux=v[a];
    v[a]=v[b];
    v[b]=aux;
}
int main()
{
    freopen("congr.in", "r", stdin);
    freopen("congr.out", "w", stdout);
    int n, i, j, s=0;
    scanf("%d", &n);
    for(i=0;i<n*2+1;i++){
        scanf("%d", &v[i]);
        poz[i]=i;
        if(i<n)
            s+=v[i];
    }
    if(s%n==0){
        for(i=0;i<n;i++)
            printf("%d ", poz[i]+1);
        return 0;
    }
    int found=0;
    srand(time(0));
    while(!found)
    {
        i=rand()%n;
        j=n+rand()%(n+1);
        poz[i]=j;
        poz[j]=i;
        s-=v[i];
        s+=v[j];
        interschimba(i, j);
        if(s%n==0)
        {
            for(i=0;i<n;i++)
                printf("%d ", poz[i]+1);
            return 0;
        }
    }
    return 0;
}