제출 #751113

#제출 시각아이디문제언어결과실행 시간메모리
751113vjudge1Foehn Phenomena (JOI17_foehn_phenomena)C++17
30 / 100
1076 ms2020 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define ll long long
#define pb push_back
#define all(v) v.begin(),v.end()
#define fr(m,n) for(int i=m;i<n;i++)
#define ff for(int i=0;i<n;i++)
#define ff1 for(int i=1;i<=n;i++)
#define frr1 for(int i=n;i>0;i++)
#define frr for(int i=n-1;i>=0;i++)
#define endl '\n'
#define el cout<<endl;
#define yes cout<<"YES"
#define yesm cout<<"Yes"
#define no cout<<"NO"
#define nom cout<<"No"
#define inf INT_MAX
#define ext {cout<<-1;return;}
#define gcd(a,b) __gcd(a,b)
#define lcm(a,b) a*b/__gcd(a,b)
#define vi vector<int>
#define frj(m,n) for(j=m;j<n;j++)
#define frl(m,n) for(l=m;l<n;l++)
#define sz size()
#define se second
int i, j, k, l, r, m, n, a, b, c, d, ans = 0, num = 0, sum = 0;
int x, y, z, w, ma = 0, mi = inf, q;
string s, p, st;
#define vpi vector<pair<int,int>>
#define vvi vector<vi>
#define pi pair<int,int>
#define mii map<int,int>
#define fi first
#define se second
#define si set<int>
#define mci map<char,int>
#define als(i) cout<<i.fi<<" "<<i.se<<endl;
#define wq while(q--)
bool id;
int su(int x) {
	ans = 0;
	while (x) {
		ans += x % 10;
		x /= 10;
	} return ans;
}
void solve() {
	// cin >> n >> q;
	// fr(0, n) s += 'A' + i;
	// // cout << s;
	// fr(0, n - 1) {
	// 	bool id = 0;
	// 	for (j = 0; j < n - 1; j++) {
	// 		cout << "? " << s[j] << " " << s[j + 1] << endl;
	// 		char kk;
	// 		cin >> kk;
	// 		if (kk == '>') {
	// 			swap(s[j], s[j + 1]); id = 1;
	// 		}
	// 	}
	// 	if (id == 0) break;
	// }
	// cout << "! " << s << endl;
	int n, q, s, t;
	cin >> n >> q >> s >> t; vi v(n + 1);
	fr(0, n + 1) {
		cin >> v[i];
	}
	sum = 0; s *= -1;
	fr(0, n) {
		if (v[i] > v[i + 1]) sum += t * (v[i] - v[i + 1]);
		else sum += s * (v[i + 1] - v[i]);
	}
	// cout << sum;
	wq{
		cin >> a >> b >> x; k = 0;
		if (v[a - 1] > v[a]) k += t * abs(v[a - 1] - v[a]);
		else k += s * abs(v[a - 1] - v[a]);
		if (b != n) {
			if (v[b] > v[b + 1]) k += t * abs(v[b] - v[b + 1]);
			else k += s * abs(v[b] - v[b + 1]);
		}
		// cout << k;
		sum -= k;
		fr(a, b + 1) {
			v[i] += x;
		}
		if (v[a - 1] > v[a]) sum += t * abs(v[a - 1] - v[a]);
		else sum += s * abs(v[a - 1] - v[a]);
		if (b != n) {
			if (v[b] > v[b + 1]) sum += t * abs(v[b] - v[b + 1]);
			else sum += s * abs(v[b] - v[b + 1]);
		}
		cout << sum << endl;
	}
}
signed main() {
	ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
	int TC = 1;
	// cin >> TC;
	while (TC--) {
		solve();
		el;
	} return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...