Pagini recente » Cod sursa (job #535763) | Cod sursa (job #546803) | Cod sursa (job #1416349) | Cod sursa (job #2559001) | Cod sursa (job #2603228)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("curcubeu.in");
ofstream fout("curcubeu.out");
const int nmax=1000005;
int n,a0,b0,c0,af,bf,cf;
int cells[nmax],range[nmax];
struct r
{
int x,y,colour;
}v[nmax];
void read()
{
fin>>n>>a0>>b0>>c0;
v[1]={min(a0,b0),max(a0,b0),c0};
for(int i=2;i<n;i++)
{
af=(1LL*a0*i)%n;
bf=(1LL*b0*i)%n;
cf=(1LL*c0*i)%n;
v[i]={min(af,bf),max(af,bf),cf};
a0=af,b0=bf,c0=cf;
}
}
void solve()
{
for(int i=n-1;i>=1;i--)
{
int x=v[i].x,y=v[i].y;
for(;x<=y;x++)
if(!range[x])
{
range[x]=y;
cells[x]=v[i].colour;
}
else
x=range[x];
}
for(int i=1;i<n;i++)
fout<<cells[i]<<"\n";
}
int main()
{
read();
solve();
return 0;
}