题解 P5094 【[USACO2004OPEN]MooFest 狂欢节】

· · 题解

大水题,纯模拟.

#include<bits/stdc++.h>
using namespace std;
long long n,v[20001],x[20001],ans=0;
inline long long read()//快读
{
    long long res=0;
    long long fl=1;
    char ch=getchar();
    while(!isdigit(ch)){
        if(ch=='-') fl=-1;
        ch=getchar();
    }
    while(isdigit(ch)){
        res=res*10+ch-'0';
        ch=getchar();
    }
    return fl*res;
} 
int main(){
    n=read();
    for(register int i=1;i<=n;i++)
        v[i]=read(),x[i]=read();
    for(register int i=1;i<=n;i++){
        for(register int j=i+1;j<=n;j++){//逐个向后递进
            ans+=max(v[i],v[j])*(abs(x[i]-x[j]));//按题意累加即可
        }
    }
    printf("%lld\n",ans);//输出
    return 0;
}