Pagini recente » Cod sursa (job #1664508) | Cod sursa (job #2922474) | Cod sursa (job #1746133) | Cod sursa (job #854659) | Cod sursa (job #2006583)
#include <bits/stdc++.h>
using namespace std;
FILE *F=fopen("curcubeu.in", "r"), *G=fopen("curcubeu.out", "w");
int n, a1, a, b1, b, c1, c, v[1000005], nxt[1000005], tx;
int fnd(int x)
{
int r, y;
for(r = x; r != nxt[r]; r = nxt[r]+1);
return r;
}
int main()
{
fscanf(F, "%d %d %d %d ", &n, &a1, &b1, &c1);
for(int i = 1; i < n; ++ i) nxt[i] = i;
if(a1 > b1) swap(a1, b1);
for(int i = a1; i <= b1; ++ i)
v[i] = c1, nxt[i] = b1;
for(int i = 2; i < n; ++ i)
{
a = (a1 *i)%n;
b = (b1 * i)%n;
c = (c1 * i)%n;
a = a1, b1 = b, c1 = c;
if(a > b) swap(a, b);
for(int j = nxt[a]+1; j <= b; j = nxt[j]+1)
{
while(nxt[j] == j && !v[j] && j < n && j <= b)
{
v[j] = c;
if(nxt[j] + 1 < n)
j = nxt[j]+1;
}
}
}
for(int i = 1; i < n; ++ i)
fprintf(G, "%d\n", v[i]);
return 0;
}