제출 #209236

#제출 시각아이디문제언어결과실행 시간메모리
209236BlerarghFoehn Phenomena (JOI17_foehn_phenomena)C++17
100 / 100
157 ms5752 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef long double ld; typedef pair<ll,ll> ii; typedef pair<ld,ld> id; #define FOR(i, a, b) for(int i=(a); i<=(b); i++) #define ROF(i, a, b) for(int i=(a); i>=(b); i--) #define MEM(x, v) memset(x, v, sizeof(x)) #define SORT(x) sort((x).begin(), (x).end()) #define CMPSORT(x, cp) sort((x).begin(), (x).end(), cp) #define FAST ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); #define f first #define s second #define ins insert #define e emplace #define eb emplace_back #define ef emplace_front #define p push #define pf push_front #define pb push_back #define mp make_pair #define ub upper_bound #define lb lower_bound #define ft front #define bk back #define pp pop #define ppb pop_back #define ppf pop_front #define db cout<<"YEET\n"; #define ct(x) cout<<x<<'\n'; const ll MOD = 1e9+7; //998244353 const ll MX = 2e5+5; const ll INF = 1e18; const ld PI = acos((ld)-1); int main(){ FAST ll n, q, s, t, x, temp=0; ll diff[200010]; cin >> n >> q >> s >> t >> x; FOR(i,1,n){ ll prev = x; cin >> x; diff[i] = x-prev; if (diff[i]>=0) temp-=diff[i]*s; else temp+=-diff[i]*t; } ll a, b, c; FOR(i,1,q){ cin >> a >> b >> c; ll olda = diff[a]; ll newa = diff[a]+=c; if (olda<=0 && newa<=0) temp-=c*t; else if (olda>=0 && newa>=0) temp-=c*s; else if (olda>=0 && newa<=0) temp+=olda*s, temp-=newa*t; else if (olda<=0 && newa>=0) temp+=olda*t, temp-=newa*s; if (b==n) { cout << temp << '\n'; continue; } else { ll oldb = diff[b+1]; ll newb = diff[b+1]-=c; if (oldb<=0 && newb<=0) temp+=c*t; else if (oldb>=0 && newb>=0) temp+=c*s; else if (oldb<=0 && newb>=0) temp+=oldb*t, temp-=newb*s; else if (oldb>=0 && newb<=0) temp+=oldb*s, temp-=newb*t; } cout << temp << '\n'; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...