Pagini recente » Clasament preoni62b | Cod sursa (job #1466667) | Cod sursa (job #2559882) | Cod sursa (job #2985415) | Cod sursa (job #972759)
Cod sursa(job #972759)
#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;
int temp;
if(A > B)
temp = A, A = B, B = temp;
v[1][0] = A, v[1][1] = B, v[1][2] = C;
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;
}
for(int i = N - 1; i; --i) {
for(int j = v[i][0]; j <= v[i][1]; ++j)
if(F[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;
}