Submission #33260

# Submission time Handle Problem Language Result Execution time Memory
33260 2017-10-23T07:36:49 Z user202729 Foehn Phenomena (JOI17_foehn_phenomena) C++14
30 / 100
293 ms 5144 KB
// https://oj.uz/problem/view/JOI17_foehn_phenomena

#ifndef _GLIBCXX_DEBUG
#define NDEBUG
#endif // _GLIBCXX_DEBUG

#include <iostream>
#include <vector>
#include <cassert>


using ll = int64_t;

int main() {
	int JOIhome, nMove, decTempPerAlt, incTempPerAlt;
	std::cin >> JOIhome >> nMove >> decTempPerAlt >> incTempPerAlt;
	std::vector<ll> height (JOIhome + 1);
	for (ll& h : height) std::cin >> h;

	ll temperature = 0; // temperature at 0
	std::vector<ll> diff (JOIhome);

	auto add_diff = [&temperature, decTempPerAlt, incTempPerAlt](ll diff){
		if (diff > 0) {
			temperature -= decTempPerAlt * diff;
		} else {
			temperature += incTempPerAlt * (-diff);
		}
	};

	auto remove_diff = [&temperature, decTempPerAlt, incTempPerAlt](ll diff){
		if (diff > 0) {
			temperature += decTempPerAlt * diff;
		} else {
			temperature -= incTempPerAlt * (-diff);
		}
	};

	for (int spot = 1; spot <= JOIhome; ++spot) {
		// now temperature @ spot - 1
		diff[spot - 1] = height[spot] - height[spot - 1];
		add_diff(diff[spot - 1]);
	}
	while (nMove --> 0) {
		int leftBound, rightBound, delta;
		std::cin >> leftBound >> rightBound >> delta;

		assert(leftBound != 0);

		remove_diff(diff[leftBound - 1]);
		diff[leftBound - 1] += delta;
		add_diff(diff[leftBound - 1]);

		if (rightBound != JOIhome) {
			remove_diff(diff[rightBound]);
			diff[rightBound] -= delta;
			add_diff(diff[rightBound]);
		}

		std::cout << temperature << '\n';
	}
}
# Verdict Execution time Memory Grader output
1 Correct 13 ms 2016 KB Output is correct
2 Correct 3 ms 2016 KB Output is correct
3 Correct 19 ms 2016 KB Output is correct
4 Correct 13 ms 2016 KB Output is correct
5 Correct 16 ms 2016 KB Output is correct
6 Correct 0 ms 2016 KB Output is correct
7 Correct 6 ms 2016 KB Output is correct
8 Correct 9 ms 2016 KB Output is correct
9 Correct 6 ms 2016 KB Output is correct
10 Correct 3 ms 2016 KB Output is correct
11 Correct 9 ms 2016 KB Output is correct
12 Correct 6 ms 2016 KB Output is correct
13 Correct 9 ms 2016 KB Output is correct
14 Correct 6 ms 2016 KB Output is correct
15 Correct 19 ms 2016 KB Output is correct
16 Correct 6 ms 2016 KB Output is correct
17 Correct 9 ms 2016 KB Output is correct
18 Correct 6 ms 2016 KB Output is correct
19 Correct 0 ms 2016 KB Output is correct
20 Correct 0 ms 2016 KB Output is correct
21 Correct 0 ms 2016 KB Output is correct
# Verdict Execution time Memory Grader output
1 Runtime error 293 ms 5144 KB Execution timed out (wall clock limit exceeded)
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 13 ms 2016 KB Output is correct
2 Correct 3 ms 2016 KB Output is correct
3 Correct 19 ms 2016 KB Output is correct
4 Correct 13 ms 2016 KB Output is correct
5 Correct 16 ms 2016 KB Output is correct
6 Correct 0 ms 2016 KB Output is correct
7 Correct 6 ms 2016 KB Output is correct
8 Correct 9 ms 2016 KB Output is correct
9 Correct 6 ms 2016 KB Output is correct
10 Correct 3 ms 2016 KB Output is correct
11 Correct 9 ms 2016 KB Output is correct
12 Correct 6 ms 2016 KB Output is correct
13 Correct 9 ms 2016 KB Output is correct
14 Correct 6 ms 2016 KB Output is correct
15 Correct 19 ms 2016 KB Output is correct
16 Correct 6 ms 2016 KB Output is correct
17 Correct 9 ms 2016 KB Output is correct
18 Correct 6 ms 2016 KB Output is correct
19 Correct 0 ms 2016 KB Output is correct
20 Correct 0 ms 2016 KB Output is correct
21 Correct 0 ms 2016 KB Output is correct
22 Runtime error 293 ms 5144 KB Execution timed out (wall clock limit exceeded)
23 Halted 0 ms 0 KB -