Cod sursa(job #1709344)

Utilizator SAPIENTIA_N_formatXSAPIENTIA NformatX SAPIENTIA_N_formatX Data 28 mai 2016 11:53:16
Problema Padure2 Scor 0
Compilator c Status done
Runda ONIS 2016 - Runda - 2 - ACM ICPC Romanian Programming Contest Marime 1.2 kb
#include <stdio.h>
#include <stdlib.h>

int main()
{
    FILE*fin=fopen("padure2.in","rt");
    FILE*fot=fopen("padure2.out","wt");

    int n,m,i,j,mus,**q,a;

    fscanf(fin,"%d%d%d",&n,&m,&mus);

    q=(int**)calloc(n,sizeof(int*));
    for(i=0; i<n; ++i)
    {
        q[i]=(int*)calloc(m,sizeof(int));
    }

    for(i=0; i<mus; ++i)
    {
        fscanf(fin,"%d%d",&a,&j);
        q[a-1][j-1]=-1;
    }

    for(i=m-1; i>=0; --i)
    {
        q[n-1][i]=1;
    }
    for(i=n-1; i>=0; --i)
    {
        q[i][m-1]=1;
    }

    for(i=n-2; i>=0; --i)
    {
        for(j=m-2; j>=0; --j)
        {
            if(q[i][j]!=-1)
            {
                if(q[i+1][j]==-1)
                {
                    q[i][j]=q[i][j+1];
                }
                else if(q[i][j+1]==-1)
                {
                    q[i][j]=q[i+1][j];
                }
                else
                {
                    q[i][j]=q[i+1][j]+q[i][j+1];
                }
            }
        }
    }


    fprintf(fot,"%d\n",q[0][0]);

    for(i=0; i<n; ++i)
    {
        free(q[i]);
    }
    free(q);

    fclose(fin);
    fclose(fot);

    return 0;
}