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();
}