Cod sursa(job #887081)

Utilizator alex_ovidiunituAlex Ovidiu Nitu alex_ovidiunitu Data 23 februarie 2013 15:21:46
Problema 1-sir Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <iostream>
#include <fstream>
#include <cmath>
#define mod 194767
using namespace std;
int a[256*256/2+18],Max, b[256*256/2+18],n,s,smax;
int inline abs (int nr)
{
    if ( nr>0) return nr;
    return -nr;
}
int main()
{
    int i,j;
    fstream f,g;
    f.open("1-sir.in",ios::in);
    g.open("1-sir.out",ios::out);
    f>>n>>s;
    s=abs(s+0.0);
    smax=(n*(n-1))/2;
    if (s>(n*(n-1))/2)
    {
        g<<0;
        return 0;
    }
    Max=0;
    a[0]=1;
    for (i=1;i<n;i++)
    {
        if (i%2==0)
        {
            for (j=0;j<=Max+i;j++)
                a[j]=(b[abs(j-i)]+b[j+i])%mod;
            Max+=i;
            Max=min(Max,smax);
        }
        else
         {
            for (j=0;j<=Max+i;j++)
                b[j]=(a[abs(j-i)]+a[j+i])%mod;
            Max+=i;
            Max=min(Max,smax);
        }
    }
    if ((n-1)%2==0)
        g<<a[s];
    else
        g<<b[s];
}