Cod sursa(job #1716534)

Utilizator Athena99Anghel Anca Athena99 Data 12 iunie 2016 23:52:34
Problema Congr Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.18 kb
#include <cstdlib>
#include <ctime>
#include <fstream>
#include <string>
#include <vector>

using namespace std;

ifstream fin("congr.in");
ofstream fout("congr.out");

typedef long long i64;

const int pmax= 300000;

int v[pmax*2];

string buffer;
string::iterator buffer_it;

vector <int> x1, x2;

void read_int_nn( int &x ) {
    for ( ; *buffer_it>'9' || *buffer_it<'0'; ++buffer_it ) ;
    for ( x= 0; *buffer_it<='9' && *buffer_it>='0'; ++buffer_it ) {
        x= x*10+*buffer_it-'0';
    }
}

int main(  ) {
    getline( fin, buffer, (char)0 );
    buffer_it= buffer.begin();

    int p;
    i64 sum= 0;
    read_int_nn(p);
    for ( int i= 1; i<=p*2-1; ++i ) {
        read_int_nn(v[i]);
        if ( i<=p ) {
            sum= (i64)sum+v[i];
            x1.push_back(i);
        } else {
            x2.push_back(i);
        }
    }

    srand(time(NULL));
    while ( sum%p>0 ) {
        int x= rand()%p, y= rand()%(p-1);
        sum= (i64)sum-v[x1[x]]+v[x2[y]];
        int aux= x1[x];
        x1[x]= x2[y], x2[y]= aux;
    }

    for ( int i= 0; i<(int)x1.size(); ++i ) {
        fout<<x1[i]<<" ";
    }
    fout<<"\n";

    return 0;
}