Pagini recente » Cod sursa (job #1293987) | Cod sursa (job #801468) | Cod sursa (job #2279643) | Cod sursa (job #2634856) | Cod sursa (job #995931)
Cod sursa(job #995931)
#include<cstdio>
#include<cstdlib>
using namespace std;
int *color, a, b, c, n, k;
inline int min (int a, int b) { return (a > b) ? b : a; }
inline int max (int a, int b) { return (a > b) ? a : b; }
void rainbow(int a, int b, int c, int i){
if (i < n-1){
i++;
a = (a * i) % n;
b = (b * i) % n;
c = (c * i) % n;
rainbow(a, b, c, i);
if (k < n-1) {
for (int j = min(a, b); j<= max(a, b); j++)
if (color[j] == 0) color[j] = c, k++;
}
}
}
int main(){
FILE *in = fopen("curcubeu.in", "r"), *out = fopen("curcubeu.out", "w");
if (in && out){
fscanf(in, "%d %d %d %d", &n, &a, &b, &c);
color = (int *) calloc (n, sizeof(int));
for (int j = min(a, b); j <= max(a, b); j++, k++)
color[j] = c;
rainbow(a, b, c, 1);
for (int i = 1; i <= n-1; i++)
fprintf(out,"%d\n", color[i]);
fclose(in), fclose(out);
}
return 0;
}