Cod sursa(job #85934)

Utilizator gabitzish1Gabriel Bitis gabitzish1 Data 23 septembrie 2007 11:48:15
Problema Curcubeu Scor 20
Compilator cpp Status done
Runda Autumn Warmup 2007, Runda 2 Marime 0.64 kb
#include<stdio.h>

long v[1000000], n, a, b, c;

long max(long a, long b)
{
  if (a>b) return a;
  return b;
}

long min(long a, long b)
{
  if (a<b) return a;
  return b;
}

int main()
{
  freopen("curcubeu.in","r",stdin);
  freopen("curcubeu.out","w",stdout);
  scanf("%ld%ld%ld%ld",&n,&a,&b,&c);

  int i, j, x, y;
  x=min(a,b);
  y=max(a,b);

  for (i=x; i<=y; i++) v[i]=c;

  for (i=2; i<n; i++)
  {
    a=(a*i)%n;
    b=(b*i)%n;
    c=(c*i)%n;
    if (a==0 && b==0) break;
    x=min(a,b);
    y=max(a,b);
    for (j=x; j<=y; j++) v[j]=c;
  }

  for (i=1; i<n; i++) printf("%ld\n",v[i]);
  return 0;
}