Pagini recente » Cod sursa (job #2462082) | Cod sursa (job #1060905) | Autentificare | Cod sursa (job #1071976) | Cod sursa (job #3235733)
#include <fstream>
#define cin fin
#define cout fout
using namespace std;
const int NMAX = 1000002;
ifstream fin("curcubeu.in");
ofstream fout("curcubeu.out");
int n, a[NMAX], b[NMAX], c[NMAX], urma[NMAX], sol[NMAX];
int main()
{
cin >> n >> a[1] >> b[1] >> c[1];
for(int i = 2; i < n; i++)
{
a[i] = (1ll * a[i - 1] * i) % n;
b[i] = (1ll * b[i - 1] * i) % n;
c[i] = (1ll * c[i - 1] * i) % n;
urma[i] = i + 1;
}
urma[1] = 2, urma[n] = 0;
for(int k = n - 1; k >= 1; k--)
{
int st = a[k], dr = b[k];
if(st > dr) swap(st, dr);
int i = st;
while(i <= dr)
{
if(!sol[i])
{
urma[i] = dr + 1;
sol[i] = c[k];
i++;
}
else i = urma[i];
}
}
for(int i = 1; i < n; i++)
cout << sol[i] << '\n';
return 0;
}