제출 #1264674

#제출 시각아이디문제언어결과실행 시간메모리
1264674Noname_1900Foehn Phenomena (JOI17_foehn_phenomena)C++20
100 / 100
62 ms7244 KiB
#include<bits/stdc++.h> using namespace std; const int NMAX = 200000+1; int N, nbJ, changAltPlus, changAltMoins; #define int long long //int temp[NMAX]; struct altitude { int val; int changTemp() { int dif = val; if(dif > 0) return abs(dif)*changAltPlus; else return abs(dif) * changAltMoins; } }; altitude ecart[NMAX]; int alt[NMAX]; signed main() { ios::sync_with_stdio(false); cin.tie(0); cin >> N >> nbJ >> changAltPlus >> changAltMoins; changAltPlus = -changAltPlus; for(int i = 0; i <= N; i++) cin >> alt[i]; for(int i = 0; i < N; i++) ecart[i].val = alt[i+1]-alt[i]; /* for(int i = 0; i <= N; i++) { cout << i << " : " << alt[i] << " " << ecart[i].val << " : " << ecart[i].changTemp() << endl;; }/** */ int sommeTemp = 0; for(int i = 0; i < N; i++) { // cout << ecart[i].val << endl; // temp[i] = ecart[i].changTemp(); sommeTemp += ecart[i].changTemp(); //cout << sommeTemp << " "; } //cout << "\n"; // for(int i = 0; i < N; i++) cout << ecart[i].val << " "; // cout << endl; //cout << sommeTemp << endl; for(int iJ = 0; iJ < nbJ; iJ++) { int deb, fin, chang; cin >> deb >> fin >> chang; fin++; sommeTemp -= ecart[deb-1].changTemp(); ecart[deb-1].val += chang; sommeTemp += ecart[deb-1].changTemp(); if(fin -1 < N) { sommeTemp -= ecart[fin-1].changTemp(); ecart[fin-1].val -= chang; sommeTemp += ecart[fin-1].changTemp(); } // for(int i = 0; i < N; i++) cout << ecart[i].val << " "; // cout << "." << "\n"; cout << sommeTemp << "\n"; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...