Submission #1438911
Source Code Expand
#include <iostream> #include <vector> #include <algorithm> #define REP(i, a, n) for(int i = ((int) a); i < ((int) n); i++) #define fi first #define se second using namespace std; typedef pair<int, int> pii; class BinaryIndexedTree { vector<int> a; public: BinaryIndexedTree(int n) { a.clear(); REP(i, 0, n + 1) a.push_back(0); } int query(int i) { if(!i) return 0; return max(a[i], query(i - (i & -i))); } void update(int i, int n) { if(i > a.size()) return; a[i] = max(query(i), n; update(i + (i & -i), a[i]); } }; const int SIZE = 100000; int N; pii D[SIZE]; int main(void) { cin >> N; REP(i, 0, N) cin >> D[i].fi >> D[i].se; sort(D, D + N); BinaryIndexedTree bit(SIZE); vector<pii> q; REP(i, 0, N) { q.push_back(pii(D[i].se, bit.query(D[i].se) + 1)); if(i + 1 == N || D[i].fi != D[i + 1].fi) { REP(j, 0, q.size()) bit.update(q[j].fi, q[j].se); q.clear(); } } cout << bit.query(SIZE + 1) << endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | D - プレゼント |
User | kshinya |
Language | C++14 (GCC 5.4.1) |
Score | 0 |
Code Size | 1057 Byte |
Status | CE |
Compile Error
./Main.cpp: In member function ‘void BinaryIndexedTree::update(int, int)’: ./Main.cpp:26:27: error: expected ‘)’ before ‘;’ token a[i] = max(query(i), n; ^