# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
64921 | leejseo | 조화행렬 (KOI18_matrix) | C++98 | 549 ms | 74876 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
typedef pair<int, int> pii;
const int MAXN = 200001;
typedef struct DP{
// Note that all numbers are different
// Data structure for 2D LIS Query
set<pii> S[MAXN+1];
DP(){}
void update(int i, pii &p){
//Amortized O(log N)
//Each pii is inserted at most once and deleted at most once
S[i].insert(p);
set<pii>::iterator it;
it = S[i].lower_bound(p);
if (it != S[i].begin()){
--it;
if ((*it).second < p.second){
++it;
S[i].erase(it);
return;
}
}
while(1){
it = S[i].lower_bound(p);
++it;
if (it == S[i].end()) break;
if ((*it).second < p.second) break;
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |