哪里有问题呢?ccfcsp的


#include<iostream>
using namespace std;
int main(void)
{
    int i,n,a,b,x1[100],y1[100],x2[100],y2[100],sum=0;
    cin>>n>>a>>b;
    for(i=0;i<n;i++)
        cin>>x1[i]>>y1[i]>>x2[i]>>y2[i];
    for(i=0;i<n;i++)
        if(x1[i]>=0&&y1[i]>=0&&x2[i]<=a&&y2[i]<=b)
            sum=sum+(x2[i]-x1[i])*(y2[i]-y1[i]);
        else
            if(y1[i]>=b||y2[i]<=0||x1[i]>=a||x2[i]<=0)
                sum+=0;
            else  
            {
                if(x1[i]>=0&&y1[i]>=0)
                    sum=sum+(a-x1[i])*(b-y1[i]);
                if(x1[i]>=0&&y1[i]<=0)
                    sum=sum+(a-x1[i])*y2[i];
                if(x1[i]<=0&&y1[i]<=0)
                    sum=sum+x2[i]*y2[i];
                if(x1[i]<=0&&y1[i]>=0)
                    sum=sum+x2[i]*(b-y1[i]);
            }
    cout<<sum;
    return 0;
}

CCF-CSP202303-1题,上面是我写的代码,样本数据没错误但是被判零分

万分感谢

#include<iostream>
    using namespace std;
    signed main(void)
    {
        int i,n,a,b,x1[103],y1[103],x2[103],y2[103],sum=0;
        cin>>n>>a>>b;
        for(i=0;i<n;i++)
            cin>>x1[i]>>y1[i]>>x2[i]>>y2[i];
        for(i=0;i<n;i++)
            if(x1[i]>=0&&y1[i]>=0&&x2[i]<=a&&y2[i]<=b)
                sum=sum+(x2[i]-x1[i])*(y2[i]-y1[i]);
            else
                if(y1[i]>=b||y2[i]<=0||x1[i]>=a||x2[i]<=0)
                    sum+=0;
                else  
                {
                    if(x1[i]>=0&&y1[i]>=0)
                        sum=sum+(min(x2[i],a)-x1[i])*(min(y2[i],b)-y1[i]);
                    if(x1[i]>=0&&y1[i]<=0)
                        sum=sum+(min(x2[i],a)-x1[i])*y2[i];
                    if(x1[i]<=0&&y1[i]<=0)
                        sum=sum+x2[i]*y2[i];
                    if(x1[i]<=0&&y1[i]>=0)
                        sum=sum+x2[i]*(min(y2[i],b)-y1[i]);
                }
        cout<<sum;
        return 0;
    }

就是比如说 if(x1[i]>=0&&y1[i]>=0)这里,右下角的点是不确定的啊,不一定右下角的点就一定在ab矩形的外面,所以要加一个判断,取一个min值