Pagini recente » Cod sursa (job #2950475) | Cod sursa (job #1642603) | Cod sursa (job #930619) | Cod sursa (job #3266302) | Cod sursa (job #972758)
Cod sursa(job #972758)
#include <fstream>
using namespace std;
const int MAX_N = 1000002;
int N;
int a[MAX_N], v[MAX_N][3], F[MAX_N];
long long int A, B, C;
int main() {
ifstream f("curcubeu.in");
ofstream g("curcubeu.out");
f >> N >> A >> B >> C;
v[1][0] = A, v[1][1] = B, v[1][2] = C, F[1] = 1;
for(int i = 2; i < N; ++i) {
A = ((long long) A * i) % N;
B = ((long long) B * i) % N;
C = ((long long) C * i) % N;
int temp;
if(A > B)
temp = A, A = B, B = temp;
v[i][0] = A, v[i][1] = B, v[i][2] = C;
F[i] = i;
}
for(int i = N - 1; i; --i) {
for(int j = v[i][0]; j <= v[i][1]; ++j)
if(F[j] != j)
j = F[j];
else
a[j] = v[i][2], F[j] = v[i][1];
}
for(int i = 1; i < N; ++i)
g << a[i] << '\n';
f.close();
g.close();
return 0;
}