Submission #85724

#TimeUsernameProblemLanguageResultExecution timeMemory
85724leejseo매트 (KOI15_mat)C++14
Compilation error
0 ms0 KiB
#include<bits/stdc++.h> using namespace std; int N, W, rst; class Line { public: int x, i; bool r; Line(int x, int i, bool r): this->x(x), this->i(i), this->r(r) {} bool operator < (const Line &l) const { return this->x < l.x; } }; class Mat { public: int P, L, R, H, K; Mat(int P, int L, int R, int H, int K): this->P(P), this->L(L), this->R(R), this->H(H), this->K(K) {} bool meet(const Mat &M) const { if (this->R <= M.L || this->L >= M.R) return false; if (this->P == M.P) return true; return this->H + M.H > W; } bool operator < (const Mat &M) const { return this->R != M.R ? this->R < M.R : this->L < M.L; } }; vector<Mat> A; vector<Line> B; int D[3001][6001]; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); cin >> N >> W; for (int i = 0; i < N; i++) { int P, L, R, H, K; cin >> P >> L >> R >> H >> K; A.push_back(Mat(P, L, R, H, K)); } sort(A.begin(), A.end()); for (int i = 0; i < N; i++) { B.push_back(Line(i, A[i].L, false)); B.push_back(Line(i, A[i].R, true)); } sort(B.begin(), B.end()); for (int i = 0; i < N; i++) { for (int j = 0; j < 2*N; j++) { if (B[j].x > A[i].R) break; D[i][j] = A[i].K; if (j > 0) D[i][j] = max(D[i][j], D[i][j-1]); if (B[j].r) { int k = B[j].i; if (A[k].R <= A[i].L) { D[i][j] = max(D[i][j], D[k][j] + A[i].K); } else if (!A[i].meet(A[k])) { if (A[k].L < A[i].L) { int h = upper_bound(B.begin(), B.end(), Line(-1, A[i].L, 0)) - B.begin(); D[i][j] = max(D[i][j], D[k][h-1] + A[i].K); } else { int h = upper_bound(B.begin(), B.end(), Line(-1, A[k].L, 0)) - B.begin(); D[i][j] = max(D[i][j], D[i][h-1] + A[k].K); } } } rst = max(D[i][j], rst); } } cout << rst; return 0; }

Compilation message (stderr)

mat.cpp: In constructor 'Line::Line(int, int, bool)':
mat.cpp:11:37: error: expected identifier before 'this'
         Line(int x, int i, bool r): this->x(x), this->i(i), this->r(r) {}
                                     ^~~~
mat.cpp:11:37: error: expected '{' before 'this'
mat.cpp: In constructor 'Mat::Mat(int, int, int, int, int)':
mat.cpp:20:49: error: expected identifier before 'this'
         Mat(int P, int L, int R, int H, int K): this->P(P), this->L(L), this->R(R), this->H(H), this->K(K) {}
                                                 ^~~~
mat.cpp:20:49: error: expected '{' before 'this'