Pagini recente » Cod sursa (job #1596151) | Cod sursa (job #1143042) | Cod sursa (job #840621) | Cod sursa (job #2626398) | Cod sursa (job #3314363)
#include <iostream>
#include <fstream>
#include <queue>
#include <vector>
#define ll long long
using namespace std;
ifstream fin("curcubeu.in");
ofstream fout("curcubeu.out");
const int MAX=1e6;
int n,i,color[MAX+5];
vector <int> add[MAX+5],rmv[MAX+5];
priority_queue <int> pq;
bool viz[MAX+5];
ll a,b,c;
int main()
{
fin>>n>>a>>b>>c;
for (i=1; i<=n-1; i++)
{
color[i]=c;
add[min(a,b)].push_back(i);
rmv[max(a,b)+1].push_back(i);
a=(ll)a*(ll)(i+1)%(ll)n;
b=(ll)b*(ll)(i+1)%(ll)n;
c=(ll)c*(ll)(i+1)%(ll)n;
}
for (i=1; i<=n-1; i++)
{
for (auto x: add[i])
pq.push(x);
for (auto x: rmv[i])
viz[x]=1;
while (!pq.empty() && viz[pq.top()])
pq.pop();
if (pq.empty())
fout<<0<<'\n';
else
fout<<color[pq.top()]<<'\n';
}
return 0;
}