#include #include #include int absz( const int x ) { return x > 0 ? x : -x; } int main( void ) { int N = 1, M = 1; std::cin >> N >> M; std::vector L( N ); for (int i = 0;i < N;i++) { std::cin >> L[i]; } int F = 0, B = 0, W = 0; int sum = 0; for (int i = 0; i < M; i++) { std::cin >> F >> B >> W; auto l = std::lower_bound( L.begin(), L.end(), F ); auto l2 = l; if (l == L.end()) --l; if (l2 != L.begin()) --l2; int d1 = absz( *l - F ); int d2 = absz( *l2 - F ); int nearest = d1 > d2 ? d2 : d1; if (nearest < 1) { sum += W; } else if (nearest < W - B) { sum += W - nearest; } else { sum += B; } } std::cout << sum; return 0; }