Pagini recente » Cod sursa (job #2577924) | Cod sursa (job #2392877) | Cod sursa (job #1973975) | Cod sursa (job #3291691) | Cod sursa (job #923644)
Cod sursa(job #923644)
#include <cstdio>
#include <cstdlib>
#include <ctime>
const int MAX_SIZE(300001);
int v [MAX_SIZE << 1];
int position [MAX_SIZE << 1];
int p, p2;
long long sum;
inline int number (char *s)
{
int result(0);
for (int i(0) ; s[i] ; ++i)
result = result * 10 + s[i] - '0';
return result;
}
inline void read (void)
{
char s [10];
std::freopen("congr.in","r",stdin);
std::scanf("%d\n",&p);
p2 = (p << 1) - 1;
for (int i(1) ; i <= p2 ; ++i)
{
std::scanf("%s ",s);
v[i] = number(s);
position[i] = i;
if (i <= p)
sum += v[i];
}
std::fclose(stdin);
}
inline void print (void)
{
std::freopen("congr.out","w",stdout);
for (int i(1) ; i <= p ; ++i)
std::printf("%d ",position[i]);
std::putchar('\n');
std::fclose(stdout);
}
inline void swap (int &a, int &b)
{
int temp(a);
a = b;
b = temp;
}
inline void compute (void)
{
int i, j;
p2 -= p;
while (sum % p)
{
i = 1 + std::rand() % p;
j = 1 + p + std::rand() % p2;
sum = sum - v[i] + v[j];
swap(position[i],position[j]);
swap(v[i],v[j]);
}
}
int main (void)
{
std::srand(std::time(0));
read();
compute();
print();
return 0;
}