Pagini recente » Cod sursa (job #1402560) | Cod sursa (job #3134110) | Cod sursa (job #2539479) | Cod sursa (job #1969320) | Cod sursa (job #394222)
Cod sursa(job #394222)
using namespace std;
#include<fstream>
#define MAX_N 1000001
#define ll long long
int N, urm[MAX_N];
int A[MAX_N], B[MAX_N], C[MAX_N], V[MAX_N];
int main()
{
ifstream in("curcubeu.in"); ofstream out("curcubeu.out");
in>>N>>A[1]>>B[1]>>C[1];
int i, j, tmp;
urm[1] = 2;
if(A[1] > B[1]) swap(A[1], B[1]);
for(i = 2; i < N; ++i)
{
A[i] = ((ll)A[i-1] * i) % N;
B[i] = ((ll)B[i-1] * i) % N;
C[i] = ((ll)C[i-1] * i) % N;
if(A[i] > B[i]) { tmp = A[i]; A[i] = B[i]; B[i] = tmp; }
urm[i] = i + 1;
}
for(i = N - 1; i; --i)
for(j = A[i]; j <= B[i]; tmp = urm[j], urm[j] = B[i] + 1, j = tmp)
if( !V[j] ) V[j] = C[i];
for(i = 1; i < N; ++i) out<<V[i]<<"\n";
return 0;
}