Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <iostream>#include <vector>#include <string>#include <cstring>#include <map>#include <set>#include <memory>#include <cmath>#include <list>#include <iterator>#include <tuple>#include <algorithm>using namespace std;constexpr int MAXN = 1e5 + 8;using ll = long long;int M, N;int widths[MAXN], heights[MAXN];tuple<int, int, int> H[MAXN], F[MAXN];int Solution() {memset(H, 0, sizeof H);memset(F, 0, sizeof F);int curLine = 0;int curHeight = 0, totHeight = 0, preHeight = 0;int leftWidth = M;get<2>(H[0]) = leftWidth;for (int i = 0; i < N; i++) {if (widths[i] <= leftWidth) {curHeight = max(curHeight, heights[i]);