Pagini recente » Cod sursa (job #1876448) | Cod sursa (job #239269) | Cod sursa (job #746118) | Cod sursa (job #1927202) | Cod sursa (job #2047241)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("curcubeu.in");
ofstream g("curcubeu.out");
int n,a,b,c,arb[4000005];
void update(int nod,int lt,int rt,int x,int y)
{
if(x>rt || y<lt) return;
if(arb[nod] && lt!=rt)
{
arb[nod*2]=arb[nod*2+1]=arb[nod];
arb[nod]=0;
}
if(x<=lt && rt<=y)
{
arb[nod]=c;
return;
}
if(lt==rt) return;
int md=(lt+rt)/2;
if(md>=x) update(nod*2,lt,md,x,y);
if(md<y) update(nod*2+1,md+1,rt,x,y);
}
void afisare(int nod,int lt,int rt)
{
if(arb[nod] && lt!=rt)
{
arb[nod*2]=arb[nod*2+1]=arb[nod];
arb[nod]=0;
}
if(lt==rt)
{
g<<arb[nod]<<'\n';
return;
}
int md=(lt+rt)/2;
afisare(nod*2,lt,md);
afisare(nod*2+1,md+1,rt);
}
int main()
{
f>>n>>a>>b>>c;
for(int i=1;i<n;++i)
{
a=(a*i)%n;
b=(b*i)%n;
c=(c*i)%n;
update(1,1,n-1,a,b);
}
afisare(1,1,n-1);
return 0;
}