MSE06H - Japan

Tác giả: hieult

Ngôn ngữ: C++

#include <stdio.h>
//#include <conio.h>

int main()
{
   // freopen("MSE06H.inp","r",stdin);
    int test,n,m,k,a[1001][1001],f[1001][1001],x[1000001],y[1000001];
    scanf("%d",&test);
    for(int ii=1;ii<=test;ii++)
    {
        scanf("%d %d %d",&n,&m,&k);
        for(int i=1;i<=n;i++)
            for(int j=1;j<=m;j++)
            {
                a[i][j]=0;
                f[i][j]=0;
            }
       // printf("%d %d %d\n",n,m,k);
        for(int i=1;i<=k;i++)
        {
            scanf("%d %d",&x[i],&y[i]);
            a[x[i]][y[i]]=1;
           //  printf("%d %d %d\n",i,x[i],y[i]);
        }
        for(int i=2;i<=n;i++)
        {
            int u = 0;
            for(int j=m;j>=1;j--)
            {
                f[i][j]=f[i-1][j]+u;
                if(a[i-1][j]==1)
                    u++;
            }
        }
        long long KQ = 0;
        for(int i=1;i<=k;i++)
        {
            KQ = KQ + f[x[i]][y[i]];
           // printf("%d %d\n",i,f[x[i]][y[i]]);
            }
        printf("Test case %d: %lld\n",ii,KQ);
    }
   // getch();
}
        

Download