Files
code_olymp/uts/uts_2017_aut_cpp/main.cpp

49 lines
1.1 KiB
C++

#include <iostream>
#include <cmath>
using namespace std;
int compare(const void * x1, const void * x2)
{
return ( *(int*)x1 - *(int*)x2 );
}
int main() {
unsigned long long n, b, p;
cin >> n >> b >> p;
unsigned long long a[n];
for (long i = 0; i < n; i++) {
a[i] = (unsigned long long)pow(b, i+1) % p;
}
unsigned long long ma;
unsigned long long mi;
long lastclean;
for (long j = 0; j < n-1; j++) {
mi = 10000000000;
ma = 0;
for (long i = 0; i < n; i++) {
bool change = false;
if (a[i] >= ma && a[i] != 10000000000) {
ma = a[i];
change = true;
lastclean = i;
}
if (a[i] <= mi && a[i] != 10000000000) {
mi = a[i];
change = true;
lastclean = i;
}
if (change) {
a[i] = 10000000000;
}
}
a[lastclean] = (mi + ma) % p;
cout << a[lastclean] << ' ';
}
//cout << '\n';
//for (long i = 0; i < n; i++) {
// cout << a[i] << ' ';
//}
return 0;
}