Pagini recente » Cod sursa (job #1587185) | Cod sursa (job #2647345) | Cod sursa (job #2699165) | Cod sursa (job #2303535) | Cod sursa (job #2619560)
#include <bits/stdc++.h>
#define NMAX 1000005
#define ll long long
using namespace std;
ifstream fin("curcubeu.in");
ofstream fout("curcubeu.out");
int n,a,b,c;
int rasp[NMAX],parent[NMAX];
struct querry
{
int l,r,cul;
};
querry v[NMAX];
int find_set(int node)
{
if(parent[node]==node)return node;
return parent[node]=find_set(parent[node]);
}
int main()
{
fin>>n>>a>>b>>c;
for(int i=1;i<=n-1;i++)
{
parent[i]=i;
v[i].l=min(a,b);
v[i].r=max(a,b);
v[i].cul=c;
a=(a*(i+1))%n;
b=(b*(i+1))%n;
c=(c*(i+1))%n;
}
parent[n]=n;
for(int i=n-1;i>=1;i--)
{
int st=v[i].l,dr=v[i].r,culoare=v[i].cul;
st=find_set(st);
while(st<=dr)
{
if(st!=dr)parent[st];
if(rasp[st]==0)rasp[st]=culoare;
st=find_set(st+1);
}
}
for(int i=1;i<=n-1;i++)
fout<<rasp[i]<<'\n';
}