Pagini recente » Cod sursa (job #1858319) | Cod sursa (job #1681349) | Cod sursa (job #1875558) | Cod sursa (job #2525693) | Cod sursa (job #843908)
Cod sursa(job #843908)
#include<fstream>
#include<stdlib.h>
#include<time.h>
#include<stdio.h>
#include<vector>
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;
vector <int> A;
vector <int> nA;
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] );
A.push_back(i);
}
else
nA.push_back(i);
}
}
int main(){
read();
srand(time(0));
while(sum % N){
int i = rand() % N;
int j = rand() % (N - 1);
sum = sum + a[nA[j]] - a[A[i]];
swap(nA[j], A[i]);
}
for(int i = 0; i < N; i++)
fprintf(fout , "%d ", A[i]);
return 0;
}