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