Submission

Status:
----------

Score: 0

User: Jokul

Problemset: สมดุลย์

Language: c

Time: 0.002 second

Submitted On: 2025-04-03 18:12:55

#include<stdio.h>
int main(){
int n;
scanf("%d",&n);
int a[n],b[n],l[n],r[n],end=0,count=0,pow=1,layer[n];
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
scanf("%d",&l[i]);
scanf("%d",&b[i]);
scanf("%d",&r[i]);
    if(a[i]==0&&b[i]==0)
        count++;
    if(a[i]==0||b[i]==0)
        ;
}
    int stick[n],sum[n-count],result[n-count],max[n-count],min[n-count];
    stick[0]=0;
    stick[1]=1;
    for (int i = 0; i < n-count; i++) {
        stick[i]=0;
        sum[i] = 0;
        result[i] = 0;
        max[i]=0;
        min[i]=0;
    }
    for(int i=0;i<count;i++)
        {
            pow=pow*2;
        }
for(int i=0;i<n;i++)
{
if(n<=2)
{
   if(n==1)
   {
       if(l[0]>r[0])
       end=l[0]-r[0];
       else
        end=r[0]-l[0];
   }
    else
   {
       if(a[0]==0){
           if(r[0]-(l[1]+r[1])>=0)
           end=r[0]-(l[1]+r[1]);
           else
            end=l[1]+r[1]-r[0];
       }
       if(a[0]==1){
              if(l[0]-(l[1]+r[1])>=0)
              end=l[0]-(l[1]+r[1]);
              else
               end=l[1]+r[1]-l[0];
          }
   }
}
    else
{
if(a[i]==1&&max[0]<=l[i])
      max[0]=l[i];
    max[1]=r[i];

if(b[i]==1&&max[0]<=r[i])
    max[0]=r[i];
    max[1]=l[i];
}
}
    for(int i=0;i<n;i++)
    {
        if(a[i]!=0&&l[i]!=max[0])
        {
            end=end+(max[0]-l[i]);
        }
        if(b[i]!=0&&r[i]!=max[0])
        {
            end=end+(max[0]-r[i]);
        }
    }
printf("\n%d",end);
}