Cod sursa(job #1709179)

Utilizator SAPIENTIA_N_formatXSAPIENTIA NformatX SAPIENTIA_N_formatX Data 28 mai 2016 11:10:13
Problema Padure2 Scor 0
Compilator c Status done
Runda ONIS 2016 - Runda - 2 - ACM ICPC Romanian Programming Contest Marime 0.98 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);

    ++n,++m;

    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][j]=-1;
    }

    for(i=m-2;i>0;--i){
        q[n-1][i]=1;
    }
    for(i=n-2;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",q[1][1]);

    return 0;
}