题解 | #操作数组#

操作数组

https://www.nowcoder.com/practice/834c719e740e4a1f8fc4f34f4993c8cf

若两数组总和不等则无法实现后续操作;否则最少操作数为所有需增加位置的差值之和:

void solve(){
    int n;cin>>n;
    vll a(n),b(n);
    for(int i=0;i<n;++i)cin>>a[i];
    for(int i=0;i<n;++i)cin>>b[i];
    ll s1=0,s2=0;
    for(int i=0;i<n;++i){
        s1+=a[i];
        s2+=b[i];
    }
    if(s1!=s2){
        cout<<-1<<endl;
        return;
    }
    ll ans=0;
    for(int i=0;i<n;++i){
        ll d=b[i]-a[i];
        if(d>0)ans+=d;
    }
    cout<<ans<<endl;
}
全部评论

相关推荐

评论
4
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务