Pagini recente » Cod sursa (job #189786) | Cod sursa (job #2065910) | Cod sursa (job #999406)
Cod sursa(job #999406)
#include <iostream>
#include <fstream>
#include <ctime>
#include <cstdlib>
#include <vector>
#include <cstring>
#define nmax 600005
using namespace std;
int v[nmax], used[nmax], unused[nmax];
int p, x, y, aux;
long long s = 0LL;
string line;
int main() {
srand((unsigned)time(0));
ifstream f("congr.in");
ofstream g("congr.out");
used[0] = 0;
unused[0] = 0;
v[0] = 1;
f>>p;
f.get();
getline(f, line);
for(int i=0; i<int(line.size()); i++) {
if(line[i] < '0' || line[i] > '9') v[0]++;
else v[v[0]] = v[v[0]] * 10 + line[i] - 48;
}
for(int i=1; i<=p; i++) {
used[++used[0]] = i;
s += v[i];
}
for(int i=p+1; i<2*p; i++)
unused[++unused[0]] = i;
while(s % p != 0 and s != 0) {
x = rand() % used[0] + 1;
y = rand() % unused[0] + 1;
s = s - v[used[x]] + v[unused[y]];
aux = used[x];
used[x] = unused[y];
unused[y] = aux;
}
for(int i=1; i<=used[0]; i++)
g<<used[i]<<" ";
g<<"\n";
return 0;
}