Pagini recente » Cod sursa (job #1416392) | Cod sursa (job #69323) | Cod sursa (job #995465) | Cod sursa (job #1137212) | Cod sursa (job #945680)
Cod sursa(job #945680)
#include <fstream>
#include <iostream>
using namespace std;
ifstream in ("curcubeu.in");
ofstream out ("curcubeu.out");
const size_t Nmax = 10000001;
int a[Nmax],b[Nmax],c[Nmax],sol[Nmax],nextEmpty[Nmax];
int main()
{
int n;
in >> n >> a[1] >> b[1] >> c[1];
nextEmpty[1]=1;
for(int i = 2; i < n; i++)
{
a[i] = ((a[i-1])%n*(i%n))%n;
b[i] = ((b[i-1])%n*(i%n))%n;
c[i] = ((c[i-1])%n*(i%n))%n;
nextEmpty[i]=i;
}
for(int i = n-1; i >= 1; i--)
{
int st = min(a[i],b[i]);
int fn = max(a[i],b[i]);
int j = st;
while(j <= fn&& j < n)
{
if(nextEmpty[j]==j)
{
sol[j]=c[i];
nextEmpty[j]=fn+1;
j++;
}
else
{
int newJ = nextEmpty[j];
nextEmpty[j] = fn+1;
j = newJ;
}
}
}
for(int i = 1; i < n; i++)
out << sol[i] << '\n';
}