Pagini recente » Cod sursa (job #3262779) | Cod sursa (job #3277109) | Cod sursa (job #1765118) | Cod sursa (job #1265442) | Cod sursa (job #87439)
Cod sursa(job #87439)
#include <stdio.h>
#include <stdlib.h>
#define min(A,B) (A)>(B)?(B):(A)
#define max(A,B) (A)<(B)?(B):(A)
int main(){
long int N,A1,B1,C1,*culoare,i,j,aux1,aux2;
FILE *fin, *fout;
fin=fopen("curcubeu.in", "rt");
fout=fopen("curcubeu.out", "wt");
fscanf(fin, "%ld %ld %ld %ld", &N, &A1, &B1, &C1);
// fprintf(fout,"%ld %ld %ld %ld\n",N,A1,B1,C1);
culoare=(long int *)malloc((N+1)*sizeof(long int));
for (i=1;i<N;i++)
culoare[i]=0; //Initial casele sunt necolorate
aux1=min(A1,B1);
aux2=max(A1,B1);
A1=aux1;
B1=aux2;
for (i=A1;i<B1+1;i++)
culoare[i]=C1;
for (i=1;i<N;i++){
//Colorez in N-1 pasi
A1=(A1*i)%N;
B1=(B1*i)%N;
C1=(C1*i)%N;
aux1=min(A1,B1);
aux2=max(A1,B1);
A1=aux1;
B1=aux2;
for (j=aux1;j<aux2+1;j++)
culoare[j]=C1;
}
//Afisez culorile caselor
for (i=1;i<N-1;i++)
fprintf(fout,"%ld\n",culoare[i]);
fprintf(fout,"%ld",culoare[i]);
free(culoare);
fclose(fin);
fclose(fout);
return 0;
}