Cod sursa(job #2446393)

Utilizator CharacterMeCharacter Me CharacterMe Data 8 august 2019 18:33:07
Problema Congr Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <bits/stdc++.h>

using namespace std;
int p, n, i, j, k, a[300001], b[300000];
long long v[600000], s=0LL;
char parse[4097];
int read();
int main()
{
    freopen("congr.in", "r", stdin);
    freopen("congr.out", "w", stdout);
    srand(time(NULL));
    scanf("%d", &p); fgetc(stdin);
    fgets(parse, 4097, stdin);
    n=2*p-1; k=-1;
    for(i=1; i<=n; ++i) {
        v[i]=read();
        if(i<=p) {s+=v[i]; a[i]=i;}
        else b[i-p]=i;
    }
    while(s%p){
        int i, j;
        i=rand()%p+1;
        j=rand()%(p-1)+1;
        s=s-v[a[i]]+v[b[j]];
        swap(a[i], b[j]);
    }
    for(i=1; i<=p; ++i) printf("%d ", a[i]);
    return 0;
}
int read(){
    if(k==4095) {fgets(parse, 4097, stdin); k=-1;}
    ++k;
    int nr=0;
    while(parse[k]!=' ' && parse[k]!='\n'){
        nr=nr*10+(parse[k]-'0');
        if(k==4095) {fgets(parse, 4097, stdin); k=-1;}
        ++k;
    }
    return nr;
}