Pagini recente » Cod sursa (job #2085026) | Cod sursa (job #727842) | Cod sursa (job #2540568) | Cod sursa (job #1862671) | Cod sursa (job #1676384)
#include <cstdio>
#include <algorithm>
using namespace std;
const int N=(1e6)+5;
int ans[N],a[N],b[N],c[N],n,Next[N],i;
void coloreaza(int x,int y,int c)
{
int i;
for(i=x; i<=y;)
if(ans[i]) i=Next[i];
else
{
ans[i]=c;
Next[i]=y+1;
++i;
}
}
int main()
{
freopen("curcubeu.in","r",stdin);
freopen("curcubeu.out","w",stdout);
scanf("%d%d%d%d", &n, &a[1], &b[1], &c[1]);
for(i=2; i<n; ++i)
{
a[i]=(int)(1LL*a[i-1]*i%n);
b[i]=(int)(1LL*b[i-1]*i%n);
c[i]=(int)(1LL*c[i-1]*i%n);
}
for(i=n-1; i; --i)
{
if(a[i]>b[i]) swap(a[i], b[i]);
coloreaza(a[i], b[i], c[i]);
}
for(i=1; i<n; ++i) printf("%d\n", ans[i]);
return 0;
}