Cod sursa(job #7305)

Utilizator mike4problemsRadu Gabriel mike4problems Data 21 ianuarie 2007 13:23:43
Problema 1-sir Scor 0
Compilator cpp Status done
Runda preONI 2007, Runda 1, Clasele 11-12 Marime 0.68 kb
#include<stdio.h>
#include<stdlib.h>

#define In "1-sir.in"
#define Out "1-sir.out"

#define Max (1<<16)
#define Mod 194767

FILE *f;
int n,s,dif,i,j;
int S[Max],Sol[Max];

int main(void)
 {
 f=fopen(In,"r");
 fscanf(f,"%d%d",&n,&s);
 freopen(Out,"w",f);
 dif=n*(n-1)/2;
 if(dif<abs(s)||(dif-abs(s))%2)
  {
  fprintf(f,"0\n");
  fclose(f);
  return 0;
  }
 if((dif=(dif-abs(s))/2)<2)
  {
  fprintf(f,"1\n");
  fclose(f);
  return 0;
  }
 S[0]=S[1]=S[2]=1;
 Sol[0]=Sol[1]=Sol[2]=1;
 for(i=3;i<=dif;i++)
  if(i/2<=n-1)
   {
   Sol[i]=(S[i/2]+i%2)%Mod;
   S[i]=(Sol[i]+S[i-1])%Mod;
   }
  else;
   
 fprintf(f,"%d\n",Sol[i]);
 fclose(f);
 return 0;
 }