Cod sursa(job #843902)

Utilizator Theorytheo .c Theory Data 28 decembrie 2012 16:23:29
Problema Congr Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
#include<fstream>
#include<stdlib.h>
#include<time.h>
#include<stdio.h>
using namespace std;

#define NMAX 600008

ifstream fin("congr.in");
FILE *fout = fopen("congr.out", "wt");
const int SIZE = 9 * NMAX;
char parse[SIZE], *p;
int b[NMAX], a[NMAX], N;
long long sum;
int get_x(){

    int result = 0;
    while(*p && !(*p <= '9' && *p >= '0')) ++p;

    while( *p >= '0' && *p <= '9')  result = result * 10 + (*p -'0') , p++;
    return result;


}
void read(){
    fin >>N;
    fin.getline(parse, SIZE, '\0');
    p = parse;
    for(int i = 1; i < 2 * N; i++){
        a[i] = get_x();
        //a[i] %= N;
        b[i] = i;
        if(i <= N)
            sum = (sum + a[i] );// % N;
    }
}
int main(){
    read();
    srand(time(0));

    while(sum % N){
        int i = 1 + rand()% N;
        int j = 1 + N + rand() % (N - 1);
        sum = sum + a[b[j]] - a[b[i]];
        swap(b[i], b[j]);
    }
    for(int i = 1; i <= N; i++)
        fprintf(fout , "%d ", b[i]);
    return 0;

}