제출 #1276511

#제출 시각아이디문제언어결과실행 시간메모리
1276511Mauricio_CruzFoehn Phenomena (JOI17_foehn_phenomena)C++20
0 / 100
67 ms4824 KiB
#include <bits/stdc++.h> using namespace std; #define srtl(x)sort((x).begin(),(x).end()) #define srtg(x)sort((x).begin(),(x).end(),greater<>()) #define rev(x) reverse((x).begin(),(x).end()) #define lb(x,y) lower_bound(x.begin(),x.end(),y)-x.begin() #define ub(x,y) upper_bound(x.begin(),x.end(),y)-x.begin() #define ios ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define wa cout<<"wa"; #define tl while(1){} #define f first #define s second #define pb push_back #define ins insert #define next next_permutation #define _b __builtin_popcount #define ve vector #define pii pair<int,int> #define piii pair<int,pii> #define vi vector<int> #define vii vector<pii> #define viii vector<piii> #define vvi vector<vi> #define vs vector<string> #define all(x) x.begin(), x.end() #define ic(x)int x;cin>>x #define pV(x)for(auto i:x)cout<<i<<" "; #define fr(n)for(int i=0;i<n;i++) #define no(x){cout<<x<<"\n";return;} #define cn continue; #define cint const int #define int long long int mod=1000000007; cint mod1=100000007; cint mod2=998244353; int ax[8]={0,1,0,-1,-1,1,1,-1}; int ay[8]={1,0,-1,0,1,-1,1,-1}; //int n,m; //bool on(int x,int y){return (x>=0&&x<n&&y>=0&&y<m);} //int euc(int a,int b,int c,int d){return abs(a-c)+abs(b-d);} /* const int N=200005; int tree[N]; void upd(int nod,int val){ nod+=n; tree[nod]+=val; nod/=2; while(nod!=0){ tree[nod]=tree[2*nod]+tree[2*nod]; nod/=2; } } int qr(int l,int r){ l+=n; r+=n+1; int ret=0; while(l<r){ if(l&1){ret+=tree[l];l++;} if(r&1){r--;ret+=tree[r];} l/=2; r/=2; } return ret; } */ int bp(int x,int y){ if(y==0)return 1; int r=bp(x,y/2); return (y&1)?r*r%mod*x%mod:r*r%mod; } cint oo=INT_MAX; const long long OO=LONG_LONG_MAX; int q,x,y,n; vi a; int dif(int pos){ if(pos+1>n)return 0; if(a[pos]<a[pos+1])return -(x*(a[pos+1]-a[pos])); return y*(a[pos]-a[pos+1]); } int32_t main(){ ios; cin>>n>>q>>x>>y; a.resize(n+1); for(int i=0;i<=n;i++)cin>>a[i]; int res=0; for(int i=0;i<=n-1;i++){ res+=dif(i); } while(q--){ int l,r,k; cin>>l>>r>>k; res-=dif(l-1); res-=dif(r); a[l]+=k; a[r]+=k; res+=dif(l-1); res+=dif(r); cout<<res<<"\n"; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...