Submission #288152

#TimeUsernameProblemLanguageResultExecution timeMemory
288152NemanjaSo2005Foehn Phenomena (JOI17_foehn_phenomena)C++14
30 / 100
1085 ms3692 KiB
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll koliko[200005],povecaj,res=0,T,S,N,Q,u1,u2;
int main(){
    cin>>N>>Q>>S>>T;
    N++;
    for(int i=1;i<=N;i++)
        cin>>koliko[i];
    for(int i=1;i<N;i++)
        if(koliko[i]<koliko[i+1])
            res-=S*abs(koliko[i]-koliko[i+1]);
        else res+=T*abs(koliko[i]-koliko[i+1]);
   // cout<<res<<endl;
    while(Q--){
        cin>>u1>>u2>>povecaj;
        u1++;
        u2++;
        if(koliko[u1-1]<koliko[u1] and u1!=1)
            res+=S*abs(koliko[u1-1]-koliko[u1]);
        if(koliko[u1-1]>=koliko[u1] and u1!=1)
            res-=T*abs(koliko[u1-1]-koliko[u1]);
        if(koliko[u2+1]<koliko[u2] and u2!=N)
            res+=S*abs(koliko[u2+1]-koliko[u2]);
        if(koliko[u2+1]>=koliko[u2] and u2!=N)
            res-=T*abs(koliko[u2+1]-koliko[u2]);
        for(int i=u1;i<=u2;i++)
            koliko[i]+=povecaj;
        if(koliko[u1-1]<koliko[u1] and u1!=1)
            res-=S*abs(koliko[u1-1]-koliko[u1]);
        if(koliko[u1-1]>=koliko[u1] and u1!=1)
            res+=T*abs(koliko[u1-1]-koliko[u1]);
        if(koliko[u2+1]<koliko[u2] and u2!=N)
            res-=S*abs(koliko[u2+1]-koliko[u2]);
        if(koliko[u2+1]>=koliko[u2] and u2!=N)
            res+=T*abs(koliko[u2+1]-koliko[u2]);
      /*  for(int i=1;i<=N;i++)
            cout<<koliko[i]<<" ";
        cout<<endl;*/
        res=0;
        for(int i=1;i<N;i++)
            if(koliko[i]<koliko[i+1])
                res-=S*abs(koliko[i]-koliko[i+1]);
            else res+=T*abs(koliko[i]-koliko[i+1]);
        cout<<res<<endl;
    }
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...