168692025-05-14 19:02:34tKriszFőnökszámcpp17Runtime error 0/100418ms7836 KiB
#include <iostream>

using namespace std;


struct point{
    int x;
    int y;
    bool operator<(const point& other) const {
        return (x < other.x)||(x==other.x && y > other.y);
    }
    bool dom(const point other){
        return x>other.x && y>other.y;
    }
};
struct elem{
    elem* nxt;
    point inf;
};
typedef elem* mutato;
mutato _list;
void init(mutato &a){
    a=new elem;
    a->nxt=NULL;
}
int len=0;
mutato find_x(mutato p, point inf){
    if (p->nxt){
        if(p->nxt->inf.dom(inf)) return NULL;
        if(inf<p->nxt->inf) return find_x(p->nxt, inf);
        return p;
    }
    return p;
}
mutato push(mutato &p, point inf){
    mutato q=new elem;
    q->inf = inf;
    q->nxt=p->nxt;
    p->nxt=q;
    return q;
}
mutato delnxt(mutato &p){
    mutato q=p->nxt;
    p->nxt=q->nxt;
    delete q;
}
bool delif(mutato &p){
    if(p&&p->nxt)
        if(p->inf.dom(p->nxt->inf)) {delnxt(p);return 1;};
    return 0;
}

int main()
{
    int n;
    cin>>n;
    point a;
    init(_list);
    cin>>_list->inf.x>>_list->inf.y;
    len++;
    for(int i=2;i<=n;i++){
        mutato m=_list;
        mutato q;
//        while(m!=NULL){
//            cout<<'('<<m->inf.x<<", "<<m->inf.y<<") ";
//            m=m->nxt;
//        }
//        cout<<endl;
        cin>>a.x>>a.y;
        if(_list->inf < a){
            q=new elem;
            q->inf=a;
            q->nxt=_list;
            _list=q;
            len++;
        }
        else{
            if(q=find_x(_list, a)){
                push(q, a);
                len++;
            }
        }
        while(delif(q)){len--;};
        cout<<len<<endl;
    }
    mutato q=_list;
//    while(q!=NULL){
//        cout<<'('<<q->inf.x<<", "<<q->inf.y<<") ";
//        q=q->nxt;
//    }
    return 0;
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Runtime error1ms508 KiB
2Runtime error1ms316 KiB
subtask20/5
3Runtime error1ms508 KiB
4Runtime error1ms316 KiB
5Runtime error1ms316 KiB
6Runtime error1ms316 KiB
subtask30/10
7Wrong answer1ms316 KiB
8Wrong answer1ms316 KiB
9Wrong answer2ms508 KiB
10Runtime error2ms564 KiB
11Runtime error1ms332 KiB
12Runtime error1ms316 KiB
13Runtime error1ms316 KiB
14Runtime error1ms316 KiB
subtask40/10
15Runtime error1ms512 KiB
16Runtime error1ms316 KiB
17Wrong answer3ms500 KiB
18Runtime error1ms316 KiB
19Runtime error1ms316 KiB
20Runtime error1ms316 KiB
21Runtime error1ms564 KiB
22Wrong answer192ms3896 KiB
subtask50/25
23Runtime error1ms316 KiB
24Runtime error1ms316 KiB
25Runtime error1ms316 KiB
26Runtime error1ms316 KiB
27Runtime error1ms316 KiB
28Runtime error1ms508 KiB
29Runtime error1ms316 KiB
30Runtime error1ms316 KiB
subtask60/50
31Runtime error1ms316 KiB
32Runtime error1ms316 KiB
33Runtime error1ms508 KiB
34Runtime error1ms316 KiB
35Runtime error1ms316 KiB
36Runtime error1ms316 KiB
37Wrong answer1ms316 KiB
38Wrong answer1ms316 KiB
39Wrong answer2ms508 KiB
40Runtime error2ms564 KiB
41Runtime error1ms332 KiB
42Runtime error1ms316 KiB
43Runtime error1ms316 KiB
44Runtime error1ms316 KiB
45Runtime error1ms512 KiB
46Runtime error1ms316 KiB
47Wrong answer3ms500 KiB
48Runtime error1ms316 KiB
49Runtime error1ms316 KiB
50Runtime error1ms316 KiB
51Runtime error1ms564 KiB
52Wrong answer192ms3896 KiB
53Runtime error1ms316 KiB
54Runtime error1ms316 KiB
55Runtime error1ms316 KiB
56Runtime error1ms316 KiB
57Runtime error1ms316 KiB
58Runtime error1ms508 KiB
59Runtime error1ms316 KiB
60Runtime error1ms316 KiB
61Runtime error1ms508 KiB
62Runtime error1ms508 KiB
63Runtime error1ms316 KiB
64Wrong answer96ms2100 KiB
65Runtime error1ms316 KiB
66Runtime error1ms316 KiB
67Runtime error1ms500 KiB
68Runtime error1ms332 KiB
69Runtime error1ms508 KiB
70Time limit exceeded418ms7836 KiB