Pagini recente » Istoria paginii runda/selectie_emag_mediu_2016_runda2 | preoni2008-runda1-5-8 | Cod sursa (job #945543) | Cod sursa (job #1589870) | Cod sursa (job #995940)
Cod sursa(job #995940)
#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; }
inline int * shp(int n) { return (int *) calloc (n, sizeof(int)); }
int main(){
FILE *in = fopen("curcubeu.in", "r"), *out = fopen("curcubeu.out", "w");
if (in && out){
fscanf(in, "%d", &n);
color = shp(n), a = shp(n), b = shp(n), c = shp(n);
fscanf(in, "%d %d %d", &a[1], &b[1], &c[1]);
for (int j = min(a[1], b[1]); j <= max(a[1], b[1]); j++, k++)
color[j] = c[1];
for(int i = 2; i <= n-1; i++){
a[i] = (a[i-1] * i) % n;
b[i] = (b[i-1] * i) % n;
c[i] = (c[i-1] * i) % n;
}
int i = n-1;
while (k < n-1 && i > 0) {
for (int j = min(a[i], b[i]); j<= max(a[i], b[i]); j++)
if (color[j] == 0) color[j] = c[i], k++;
i--;
}
for (int i = 1; i <= n-1; i++)
fprintf(out,"%d\n", color[i]);
fclose(in), fclose(out);
}
return 0;
}