http://acm.hdu.edu.cn/showproblem.php?pid=1264
分析:以左下角的点标志每个小正方形数过,
#include<iostream>
#include<cstdio>
using namespace std;
int a[105][105];
int main()
{
int x1,x2,y1,y2,rx,ry,i,j,ans;
memset(a,0,sizeof(a));
ans=0;
while(scanf("%d%d%d%d",&x1,&y1,&x2,&y2)!=EOF)
{
if(x1==-2)
{
printf("%d\n",ans);
break;
}
if(x1==-1)
{
printf("%d\n",ans);
ans=0;
memset(a,0,sizeof(a));
continue;
}
rx=x1>x2?x1:x2;
x1=x1<x2?x1:x2;
ry=y1>y2?y1:y2;
y1=y1<y2?y1:y2;
for(i=x1;i<rx;i++)
{
for(j=y1;j<ry;j++)
{
if(!a[i][j])
{
ans++;
a[i][j]=1;
}
}
}
}
return 0;
}