| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 1339777 | tschav_ | 나일강 (IOI24_nile) | C++20 | 0 ms | 0 KiB |
#include <bits/stdc++.h>
#define dbg(x) cerr << #x << " -> " << x << "\n"
using namespace std;
using ll = long long;
vector<ll> calculate_costs(vector<int> W, vector<int> A,
vector<int> B, vector<int> E){
int n = A.size();
int q = E.size();
vector<ll> R(q,0);
ll S = accumulate(B.begin(),B.end(),0ll);
if(n % 2 == 0){
for(int i = 0; i < q; ++i){
R[i] = S;
}
return R;
}
for(int i = 0; i < q; ++i){
for(int j = 0; j < n; ++j){
if(j == 0){
R[i] = max<ll>(R[i],S-B[j]+A[j]);
continue;
}
if(j == n-1){
R[i] = max<ll>(R[i],S-B[j]+A[j]);
continue;
}
if(E[i] >= abs(W[j+1]-W[j-1])){
R[i] = max<ll>(R[i],S-B[j]+A[j]);
}
}
}
return R;
}
signed main(void) {
cin.tie(0)->sync_with_stdio(0);
int N;
cin >> N;
vector<int> W(N),A(N),B(N);
for(int i = 0; i < N; ++i){
cin >> W[i] >> A[i] >> B[i];
}
int Q;
cin >> Q;
vector<int> E(Q);
for(int i = 0; i < Q; ++i) {
cin >> E[i];
}
vector<ll> costs = calculate_costs(W,A,B,E);
for(auto &c : costs){
cout << c << endl;
}
}