Pagini recente » Cod sursa (job #3268092) | Cod sursa (job #402226) | Cod sursa (job #2264797) | Cod sursa (job #97669) | Cod sursa (job #2619562)
#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>>v[1].l>>v[1].r>>v[1].cul;
if(v[1].l>v[1].r)swap(v[1].l,v[1].r);
for(int i=2;i<=n-1;i++)
{
parent[i]=i;
v[i].l=min((v[i-1].l*i)%n,(v[i-1].r*i)%n);
v[i].r=max((v[i-1].l*i)%n,(v[i-1].r*i)%n);
v[i].cul=(v[i-1].cul*i)%n;
}
parent[1]=1;
parent[n]=n;
for(int i=n-1;i>=1;i--)
{
int st=v[i].l,dr=v[i].r,culoare=v[i].cul;
for(int j=st;j<=dr;)
{
if(!rasp[j])
{
rasp[j]=culoare;
parent[j]=dr+1;
j++;
}
else j=parent[j];
}
}
for(int i=1;i<=n-1;i++)
fout<<rasp[i]<<'\n';
}