Pagini recente » Cod sursa (job #3365542) | Cod sursa (job #3364846) | Cod sursa (job #3365538) | Atasamentele paginii Profil cosminnnnnnna | Cod sursa (job #3365536)
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream cin("curcubeu.in");
ofstream cout("curcubeu.out");
vector<int> nexts(1000005,0);
int poola(int a) {
int cp=a;
while (nexts[a]!=a) {
a=nexts[a];
}
while (nexts[cp]!=cp) {
int x=nexts[cp];
nexts[cp]=a;
cp=x;
}
return a;
}
int main() {
int n,a,b,c;
cin>>n>>a>>b>>c;
vector<int>l(n+1);
vector<int>r(n+1);
vector<int>x(n+1);
for (int i=1;i<=n;i++) {
a=(a*i)%n;
b=(b*i)%n;
c=(c*i)%n;
l[i]=a;
r[i]=b;
x[i]=c;
}
nexts.resize(n+1);
for (int j=1;j<=n;j++) {
nexts[j]=j;
}
//nexts[0]=1;
vector<int>ans(n+1);
for (int i=n;i>=1;i--)
{
a=min(l[i],r[i]);
b=max(l[i],r[i]);
c=x[i];
for (int j=poola(a);j<=b;j=j) {
//cout<<j<<" ";
ans[j]=c;
nexts[j]=poola(j+1);
j=nexts[j];
}
}
for (int i=1;i<n;i++) {
cout<<ans[i]<<'\n';
}
return 0;
}