Cod sursa(job #1950885)

Utilizator Bodo171Bogdan Pop Bodo171 Data 3 aprilie 2017 12:30:42
Problema 1-sir Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <iostream>
#include <fstream>
using namespace std;
const int mod=194767;
int modes[2][2*256*256+1];
int n,s,use,i,j,low;
int main()
{
    ifstream f("1-sir.in");
    ofstream g("1-sir.out");
    f>>n>>s;
    if(s>n*(n-1)/2||s<-n*(n-1)/2)
    {
        g<<'0';
        return 0;
    }
    modes[1][n*(n-1)]=1;
    low=n*(n-1)/2+s;
    for(i=1;i<n;i++)
    {
        use=i%2;
        for(j=low;j<=n*(n-1)+1;j++)
            {
                modes[1-use][j]=0;
            }
        for(j=low;j<=n*(n-1)+1;j++)
            if(modes[use][j])
       {
           modes[1-use][j]+=modes[use][j];
           if(modes[1-use][j]>=mod)
              modes[1-use][j]-=mod;
           if(j-2*(n-i)>=0)
           {
            modes[1-use][j-2*(n-i)]+=modes[use][j];
            if(modes[1-use][j-2*(n-i)]>=mod)
               modes[1-use][j-2*(n-i)]-=mod;
           }
       }
    }
    use=1-use;
    g<<modes[use][n*(n-1)/2+s];
    return 0;
}