0
已解决
周琪岳
资深光能
资深光能
2607 重堆干草
#include <iostream>
#include <algorithm>
using namespace std;
int n,ans;
struct stu{
int x,y,z;
int flag;
}a[1005];
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i].x>>a[i].y;
if(a[i].x>a[i].y){
a[i].flag=1;
a[i].z=a[i].x-a[i].y;
} else if(a[i].x<a[i].y){
a[i].flag=-1;
a[i].z=a[i].y-a[i].x;
} else{
a[i].flag=0;
a[i].z=0;
}
}
for(int i=1;i<=n;i++){
if(a[i].flag==1){
for(int j=i+1;j<=n;j++){
int k;
if(a[j].flag==-1){
if(a[j].z>=a[i].z){
k=a[i].z;
a[i].z=0;
a[j].z-=k;
ans+=k*(j-i);
} else{
k=a[j].z;
a[j].z=0;
a[i].z-=k;
ans+=*(j-i);
}
}
if(a[i].z==0){
a[i].flag=0;
break;
}
}
} else if(a[i].flag==-1){
for(int j=i+1;j<=n;j++){
int k;
if(a[j].flag==1){
if(a[j].z>=a[i].z){
k=a[i].z;
a[i].z=0;
a[j].z-=k;
ans+=k*(j-i);
} else{
k=a[j].z;
a[j].z=0;
a[i].z-=k;
ans+=k*(j-i);
}
}
if(a[i].z==0){
a[i].flag=0;
break;
}
}
}
}
cout<<ans;
return 0;
}
周琪岳在2020-11-21 13:46:05追加了内容
顶
@葛新 @酷町喵~o( =∩ω∩= )o~ @酷町侠 @王浩 @崔竣恺