답안 #976401

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
976401 2024-05-06T14:13:10 Z 8pete8 새 집 (APIO18_new_home) C++17
100 / 100
4767 ms 406928 KB
#include<iostream>
#include<stack>
#include<map>
#include<vector>
#include<string>
#include<unordered_map>
#include <queue>
#include<cstring>
#include<limits.h>
#include <cassert>
#include<cmath>
#include<set>
#include<algorithm>
#include <iomanip>
#include<numeric> //gcd(a,b)
#include<bitset>
#include <cstdlib> 
#include <cstdint>
using namespace std;
#define ll long long
#define f first
//#define endl "\n"
#define s second
#define pii pair<int,int>
#define ppii pair<int,pii>
#define vi vector<int>
#define pb push_back
#define all(x) x.begin(),x.end()
#define rall(x) x.rbegin(),x.rend()
#define F(n) for(int i=0;i<n;i++)
#define lb lower_bound
#define ub upper_bound
#define fastio ios::sync_with_stdio(false);cin.tie(NULL);
#pragma GCC optimize ("03,unroll-loops")
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
using namespace std;
//#define int long long
//#define double long double
const int mxn=6e5,inf=1e9,minf=-1e9,Mxn=1e7+1;
int mx;
int del[Mxn];
set<int>pos[mxn+10];
int cnt=0;
int curid=0;
vector<int>comp;
int n,k,q;
struct seg{
    priority_queue<pii>v[2*mxn+10];
    priority_queue<pii>v2[2*mxn+10];
    void update(int l,int r,pii val,int type){//lazy on top, 1=right
        l=max(l,0);
        r=max(r,l);
        for(l+=mx,r+=mx;l<=r;l>>=1,r>>=1){
            if(l&1){
                if(type)v[l].push(val);
                else v2[l].push(val);
                l++;
            }
            if(!(r&1)){
                if(type)v[r].push(val);
                else v2[r].push(val);
                r--;
            }
        }
    }
    pii qry(int pos){
        int g=comp.size()-1;
        pos=min(pos,g);
        pii ans={minf,minf};
        for(pos+=mx;pos>=0;pos>>=1){
            while(!v[pos].empty()&&del[v[pos].top().s])v[pos].pop();
            if(v[pos].size())ans.f=max(ans.f,v[pos].top().f);
            while(!v2[pos].empty()&&del[v2[pos].top().s])v2[pos].pop();
            if(v2[pos].size())ans.s=max(ans.s,v2[pos].top().f);
            if(pos==0)break;
        }
        return ans;
    }
}seg;
int rangeleft[mxn+10],rangeright[mxn+10];
int rangeidleft[mxn+10],rangeidright[mxn+10];
int idpos[mxn+10],idposincomp[mxn+10],tmp;
void add(int x,int t){
    auto it=pos[t].insert(x).f;
    if(it!=pos[t].begin()){
        it--;
        tmp=(*it);
        int val=ceil((idpos[tmp]+idpos[x])*1.0/2);
        //find mid point
        auto it2=lb(all(comp),val)-comp.begin();
        if(it2==comp.size())assert(0);
        //find mid point in comp
        if(it2<=idposincomp[tmp])it2=idposincomp[tmp]+1;
        rangeright[tmp]=it2-1;
        if(it2>idposincomp[x])rangeleft[x]=idposincomp[x];
        else rangeleft[x]=it2;
        del[rangeidright[tmp]]=1;
        rangeidright[tmp]=++curid;
        rangeidleft[x]=++curid;
        seg.update(idposincomp[tmp],rangeright[tmp],{-idpos[tmp],rangeidright[tmp]},1);
        it++;
    }
    else{
        rangeleft[x]=0;
        rangeidleft[x]=++curid;
    }
    it++;
    if(it!=pos[t].end()){
        tmp=(*it);
        int val=ceil((idpos[tmp]+idpos[x])*1.0/2);
        auto it2=lb(all(comp),val)-comp.begin();
        if(it2==comp.size())assert(0);
        if(it2<=idposincomp[x])it2=idposincomp[x]+1;
        rangeright[x]=it2-1;
        rangeleft[tmp]=it2;
        if(it2>idposincomp[tmp])rangeleft[tmp]=idposincomp[tmp];
        else rangeleft[tmp]=it2;
        del[rangeidleft[tmp]]=1;
        rangeidright[x]=++curid;
        rangeidleft[tmp]=++curid;
        seg.update(rangeleft[tmp],idposincomp[tmp],{idpos[tmp],rangeidleft[tmp]},0);
    }
    else{
        rangeright[x]=mx;
        rangeidright[x]=++curid;
    }
    seg.update(rangeleft[x],idposincomp[x],{idpos[x],rangeidleft[x]},0);
    seg.update(idposincomp[x],rangeright[x],{-idpos[x],rangeidright[x]},1);
}
void die(int x,int t){
    del[rangeidleft[x]]=1;
    del[rangeidright[x]]=1;
    auto it=pos[t].find(x);
    if(it==pos[t].end())assert(0);
    int l,r;
    if(it==pos[t].begin()){
        it++;
        if(it!=pos[t].end()){
            tmp=(*it);
           seg.update(0,rangeleft[tmp]-1,{idpos[tmp],rangeidleft[tmp]},0);
           rangeleft[tmp]=0;
        }
        it--;
        pos[t].erase(it);
        return;
    }
    it--;
    l=(*it);
    it++;
    it++;
    if(it==pos[t].end()){
        if(rangeright[l]!=mx)seg.update(rangeright[l]+1,mx,{-idpos[l],rangeidright[l]},1);
        rangeright[l]=mx;
        it--;
        pos[t].erase(it);
        return;
    }
    else r=(*it);
    int val=ceil((idpos[l]+idpos[r])*1.0/2);
    auto it2=lb(all(comp),val)-comp.begin();
    if(it2==comp.size())assert(0);
    int k=it2;
    if(rangeright[l]>=it2)k=rangeright[l]+1;
    seg.update(rangeright[l],k-1,{-idpos[l],rangeidright[l]},1);
    if(rangeleft[r]<k)k=rangeleft[r];
    seg.update(k,rangeleft[r],{idpos[r],rangeidleft[r]},0);
    rangeright[l]=k-1;
    rangeleft[r]=k;
    it--;
    pos[t].erase(it);
    return;
}
int ans[mxn+10];
struct info{int time,etype,pos,type,id;};
bool cmp(info a,info b){
    if(a.pos==b.pos)return a.etype>b.etype;
    return a.pos<b.pos;
}
bool cmp2(info a,info b){
    if(a.time==b.time)return a.etype<b.etype;
    return a.time<b.time;
}
vector<info>event;
int what[mxn+10];
int32_t main(){
    fastio
    cin>>n>>k>>q;
    for(int i=0;i<n;i++){
        int x,t,a,b;cin>>x>>t>>a>>b;
        event.pb({a,1,x,t,i});
        event.pb({b+1,0,x,t,i});
        comp.pb(x);
    }
    vector<pair<pii,int>>qry(q);
    for(int i=0;i<q;i++)cin>>qry[i].f.s>>qry[i].f.f,qry[i].s=i,comp.pb(qry[i].f.s);
    sort(all(qry));
    sort(all(event),cmp);
    sort(all(comp));
    comp.erase(unique(all(comp)),comp.end());
    int cnt=0;
    for(auto &i:event){
        if(i.etype==0){
            i.id=what[i.id];
            continue;
        }
        what[i.id]=cnt;
        i.id=cnt;
        idpos[cnt]=i.pos;
        idposincomp[cnt]=lb(all(comp),i.pos)-comp.begin();
        cnt++;
    }
    sort(all(event),cmp2);
    int p=cnt;
    mx=comp.size();
    int cur=0,g=0;
    cnt=0;
    for(auto i:qry){
        g++;
        while(cur<event.size()&&event[cur].time<=i.f.f){
            if(event[cur].etype){
                if(pos[event[cur].type].size()==0)cnt++;
                add(event[cur].id,event[cur].type);
            }
            else{
                die(event[cur].id,event[cur].type);
                if(pos[event[cur].type].size()==0)cnt--;
            }
            cur++;
        }
        pii bru=seg.qry(lb(all(comp),i.f.s)-comp.begin());
        if(cnt!=k)ans[i.s]=-1;
        else{
            if(bru.f!=minf)ans[i.s]=max(ans[i.s],i.f.s+bru.f);
            if(bru.s!=minf)ans[i.s]=max(ans[i.s],bru.s-i.f.s);
        }
    }
    for(int i=0;i<q;i++)cout<<ans[i]<<'\n';
	return 0;
}

/*
(2*n+q)log(n)*log(10^8)
when there are currently a,b,c shop active with the same k
int range of each shop will be (0,(a+b)/2),((a+b)/2+1,(b+c)/2),((b+c)/2+1,mx)
the contribution on range l,r when shop pos is x will be
x-a,x-b,x,c-x,d-x;
we can keep muliset segtree
*/

Compilation message

new_home.cpp: In function 'void add(int, int)':
new_home.cpp:91:15: warning: comparison of integer expressions of different signedness: 'long int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   91 |         if(it2==comp.size())assert(0);
      |            ~~~^~~~~~~~~~~~~
new_home.cpp:112:15: warning: comparison of integer expressions of different signedness: 'long int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  112 |         if(it2==comp.size())assert(0);
      |            ~~~^~~~~~~~~~~~~
new_home.cpp: In function 'void die(int, int)':
new_home.cpp:161:11: warning: comparison of integer expressions of different signedness: 'long int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  161 |     if(it2==comp.size())assert(0);
      |        ~~~^~~~~~~~~~~~~
new_home.cpp: In function 'int32_t main()':
new_home.cpp:219:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<info>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  219 |         while(cur<event.size()&&event[cur].time<=i.f.f){
      |               ~~~^~~~~~~~~~~~~
new_home.cpp:213:9: warning: unused variable 'p' [-Wunused-variable]
  213 |     int p=cnt;
      |         ^
# 결과 실행 시간 메모리 Grader output
1 Correct 67 ms 119332 KB Output is correct
2 Correct 25 ms 119388 KB Output is correct
3 Correct 27 ms 119376 KB Output is correct
4 Correct 24 ms 119372 KB Output is correct
5 Correct 26 ms 119388 KB Output is correct
6 Correct 28 ms 119464 KB Output is correct
7 Correct 29 ms 119380 KB Output is correct
8 Correct 25 ms 119644 KB Output is correct
9 Correct 28 ms 119384 KB Output is correct
10 Correct 25 ms 119640 KB Output is correct
11 Correct 27 ms 119380 KB Output is correct
12 Correct 25 ms 119624 KB Output is correct
13 Correct 24 ms 119456 KB Output is correct
14 Correct 27 ms 119388 KB Output is correct
15 Correct 26 ms 119644 KB Output is correct
16 Correct 26 ms 119640 KB Output is correct
17 Correct 25 ms 119644 KB Output is correct
18 Correct 25 ms 119404 KB Output is correct
19 Correct 25 ms 119644 KB Output is correct
20 Correct 25 ms 119644 KB Output is correct
21 Correct 24 ms 119388 KB Output is correct
22 Correct 25 ms 119488 KB Output is correct
23 Correct 25 ms 119644 KB Output is correct
24 Correct 25 ms 119636 KB Output is correct
25 Correct 25 ms 119640 KB Output is correct
26 Correct 25 ms 119388 KB Output is correct
27 Correct 27 ms 119644 KB Output is correct
28 Correct 25 ms 119384 KB Output is correct
29 Correct 26 ms 119384 KB Output is correct
30 Correct 25 ms 119516 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 67 ms 119332 KB Output is correct
2 Correct 25 ms 119388 KB Output is correct
3 Correct 27 ms 119376 KB Output is correct
4 Correct 24 ms 119372 KB Output is correct
5 Correct 26 ms 119388 KB Output is correct
6 Correct 28 ms 119464 KB Output is correct
7 Correct 29 ms 119380 KB Output is correct
8 Correct 25 ms 119644 KB Output is correct
9 Correct 28 ms 119384 KB Output is correct
10 Correct 25 ms 119640 KB Output is correct
11 Correct 27 ms 119380 KB Output is correct
12 Correct 25 ms 119624 KB Output is correct
13 Correct 24 ms 119456 KB Output is correct
14 Correct 27 ms 119388 KB Output is correct
15 Correct 26 ms 119644 KB Output is correct
16 Correct 26 ms 119640 KB Output is correct
17 Correct 25 ms 119644 KB Output is correct
18 Correct 25 ms 119404 KB Output is correct
19 Correct 25 ms 119644 KB Output is correct
20 Correct 25 ms 119644 KB Output is correct
21 Correct 24 ms 119388 KB Output is correct
22 Correct 25 ms 119488 KB Output is correct
23 Correct 25 ms 119644 KB Output is correct
24 Correct 25 ms 119636 KB Output is correct
25 Correct 25 ms 119640 KB Output is correct
26 Correct 25 ms 119388 KB Output is correct
27 Correct 27 ms 119644 KB Output is correct
28 Correct 25 ms 119384 KB Output is correct
29 Correct 26 ms 119384 KB Output is correct
30 Correct 25 ms 119516 KB Output is correct
31 Correct 703 ms 167924 KB Output is correct
32 Correct 113 ms 133072 KB Output is correct
33 Correct 505 ms 150824 KB Output is correct
34 Correct 726 ms 167968 KB Output is correct
35 Correct 652 ms 162000 KB Output is correct
36 Correct 504 ms 150488 KB Output is correct
37 Correct 356 ms 152608 KB Output is correct
38 Correct 276 ms 146276 KB Output is correct
39 Correct 272 ms 147920 KB Output is correct
40 Correct 249 ms 146076 KB Output is correct
41 Correct 511 ms 154128 KB Output is correct
42 Correct 523 ms 155624 KB Output is correct
43 Correct 92 ms 133952 KB Output is correct
44 Correct 505 ms 153036 KB Output is correct
45 Correct 509 ms 150312 KB Output is correct
46 Correct 454 ms 147172 KB Output is correct
47 Correct 232 ms 150232 KB Output is correct
48 Correct 241 ms 150688 KB Output is correct
49 Correct 291 ms 152248 KB Output is correct
50 Correct 330 ms 157392 KB Output is correct
51 Correct 344 ms 151244 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2433 ms 346612 KB Output is correct
2 Correct 1402 ms 251776 KB Output is correct
3 Correct 1162 ms 297608 KB Output is correct
4 Correct 2142 ms 331256 KB Output is correct
5 Correct 1087 ms 218548 KB Output is correct
6 Correct 1317 ms 240884 KB Output is correct
7 Correct 1199 ms 318496 KB Output is correct
8 Correct 2068 ms 330352 KB Output is correct
9 Correct 2628 ms 346016 KB Output is correct
10 Correct 1984 ms 309556 KB Output is correct
11 Correct 1301 ms 261176 KB Output is correct
12 Correct 1574 ms 300332 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 4767 ms 406928 KB Output is correct
2 Correct 596 ms 181172 KB Output is correct
3 Correct 2680 ms 267364 KB Output is correct
4 Correct 1607 ms 303488 KB Output is correct
5 Correct 4151 ms 384664 KB Output is correct
6 Correct 3458 ms 379044 KB Output is correct
7 Correct 1952 ms 225784 KB Output is correct
8 Correct 2442 ms 251348 KB Output is correct
9 Correct 1531 ms 317372 KB Output is correct
10 Correct 3542 ms 377040 KB Output is correct
11 Correct 4669 ms 402480 KB Output is correct
12 Correct 3552 ms 325976 KB Output is correct
13 Correct 1422 ms 256328 KB Output is correct
14 Correct 1310 ms 240308 KB Output is correct
15 Correct 1639 ms 272140 KB Output is correct
16 Correct 2245 ms 329516 KB Output is correct
17 Correct 1672 ms 255672 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 67 ms 119332 KB Output is correct
2 Correct 25 ms 119388 KB Output is correct
3 Correct 27 ms 119376 KB Output is correct
4 Correct 24 ms 119372 KB Output is correct
5 Correct 26 ms 119388 KB Output is correct
6 Correct 28 ms 119464 KB Output is correct
7 Correct 29 ms 119380 KB Output is correct
8 Correct 25 ms 119644 KB Output is correct
9 Correct 28 ms 119384 KB Output is correct
10 Correct 25 ms 119640 KB Output is correct
11 Correct 27 ms 119380 KB Output is correct
12 Correct 25 ms 119624 KB Output is correct
13 Correct 24 ms 119456 KB Output is correct
14 Correct 27 ms 119388 KB Output is correct
15 Correct 26 ms 119644 KB Output is correct
16 Correct 26 ms 119640 KB Output is correct
17 Correct 25 ms 119644 KB Output is correct
18 Correct 25 ms 119404 KB Output is correct
19 Correct 25 ms 119644 KB Output is correct
20 Correct 25 ms 119644 KB Output is correct
21 Correct 24 ms 119388 KB Output is correct
22 Correct 25 ms 119488 KB Output is correct
23 Correct 25 ms 119644 KB Output is correct
24 Correct 25 ms 119636 KB Output is correct
25 Correct 25 ms 119640 KB Output is correct
26 Correct 25 ms 119388 KB Output is correct
27 Correct 27 ms 119644 KB Output is correct
28 Correct 25 ms 119384 KB Output is correct
29 Correct 26 ms 119384 KB Output is correct
30 Correct 25 ms 119516 KB Output is correct
31 Correct 703 ms 167924 KB Output is correct
32 Correct 113 ms 133072 KB Output is correct
33 Correct 505 ms 150824 KB Output is correct
34 Correct 726 ms 167968 KB Output is correct
35 Correct 652 ms 162000 KB Output is correct
36 Correct 504 ms 150488 KB Output is correct
37 Correct 356 ms 152608 KB Output is correct
38 Correct 276 ms 146276 KB Output is correct
39 Correct 272 ms 147920 KB Output is correct
40 Correct 249 ms 146076 KB Output is correct
41 Correct 511 ms 154128 KB Output is correct
42 Correct 523 ms 155624 KB Output is correct
43 Correct 92 ms 133952 KB Output is correct
44 Correct 505 ms 153036 KB Output is correct
45 Correct 509 ms 150312 KB Output is correct
46 Correct 454 ms 147172 KB Output is correct
47 Correct 232 ms 150232 KB Output is correct
48 Correct 241 ms 150688 KB Output is correct
49 Correct 291 ms 152248 KB Output is correct
50 Correct 330 ms 157392 KB Output is correct
51 Correct 344 ms 151244 KB Output is correct
52 Correct 310 ms 150896 KB Output is correct
53 Correct 281 ms 147404 KB Output is correct
54 Correct 539 ms 165176 KB Output is correct
55 Correct 449 ms 154060 KB Output is correct
56 Correct 378 ms 152908 KB Output is correct
57 Correct 558 ms 153484 KB Output is correct
58 Correct 482 ms 152640 KB Output is correct
59 Correct 405 ms 153136 KB Output is correct
60 Correct 494 ms 154576 KB Output is correct
61 Correct 91 ms 132048 KB Output is correct
62 Correct 302 ms 150540 KB Output is correct
63 Correct 486 ms 159664 KB Output is correct
64 Correct 493 ms 162468 KB Output is correct
65 Correct 579 ms 165060 KB Output is correct
66 Correct 560 ms 155228 KB Output is correct
67 Correct 136 ms 136908 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 67 ms 119332 KB Output is correct
2 Correct 25 ms 119388 KB Output is correct
3 Correct 27 ms 119376 KB Output is correct
4 Correct 24 ms 119372 KB Output is correct
5 Correct 26 ms 119388 KB Output is correct
6 Correct 28 ms 119464 KB Output is correct
7 Correct 29 ms 119380 KB Output is correct
8 Correct 25 ms 119644 KB Output is correct
9 Correct 28 ms 119384 KB Output is correct
10 Correct 25 ms 119640 KB Output is correct
11 Correct 27 ms 119380 KB Output is correct
12 Correct 25 ms 119624 KB Output is correct
13 Correct 24 ms 119456 KB Output is correct
14 Correct 27 ms 119388 KB Output is correct
15 Correct 26 ms 119644 KB Output is correct
16 Correct 26 ms 119640 KB Output is correct
17 Correct 25 ms 119644 KB Output is correct
18 Correct 25 ms 119404 KB Output is correct
19 Correct 25 ms 119644 KB Output is correct
20 Correct 25 ms 119644 KB Output is correct
21 Correct 24 ms 119388 KB Output is correct
22 Correct 25 ms 119488 KB Output is correct
23 Correct 25 ms 119644 KB Output is correct
24 Correct 25 ms 119636 KB Output is correct
25 Correct 25 ms 119640 KB Output is correct
26 Correct 25 ms 119388 KB Output is correct
27 Correct 27 ms 119644 KB Output is correct
28 Correct 25 ms 119384 KB Output is correct
29 Correct 26 ms 119384 KB Output is correct
30 Correct 25 ms 119516 KB Output is correct
31 Correct 703 ms 167924 KB Output is correct
32 Correct 113 ms 133072 KB Output is correct
33 Correct 505 ms 150824 KB Output is correct
34 Correct 726 ms 167968 KB Output is correct
35 Correct 652 ms 162000 KB Output is correct
36 Correct 504 ms 150488 KB Output is correct
37 Correct 356 ms 152608 KB Output is correct
38 Correct 276 ms 146276 KB Output is correct
39 Correct 272 ms 147920 KB Output is correct
40 Correct 249 ms 146076 KB Output is correct
41 Correct 511 ms 154128 KB Output is correct
42 Correct 523 ms 155624 KB Output is correct
43 Correct 92 ms 133952 KB Output is correct
44 Correct 505 ms 153036 KB Output is correct
45 Correct 509 ms 150312 KB Output is correct
46 Correct 454 ms 147172 KB Output is correct
47 Correct 232 ms 150232 KB Output is correct
48 Correct 241 ms 150688 KB Output is correct
49 Correct 291 ms 152248 KB Output is correct
50 Correct 330 ms 157392 KB Output is correct
51 Correct 344 ms 151244 KB Output is correct
52 Correct 2433 ms 346612 KB Output is correct
53 Correct 1402 ms 251776 KB Output is correct
54 Correct 1162 ms 297608 KB Output is correct
55 Correct 2142 ms 331256 KB Output is correct
56 Correct 1087 ms 218548 KB Output is correct
57 Correct 1317 ms 240884 KB Output is correct
58 Correct 1199 ms 318496 KB Output is correct
59 Correct 2068 ms 330352 KB Output is correct
60 Correct 2628 ms 346016 KB Output is correct
61 Correct 1984 ms 309556 KB Output is correct
62 Correct 1301 ms 261176 KB Output is correct
63 Correct 1574 ms 300332 KB Output is correct
64 Correct 4767 ms 406928 KB Output is correct
65 Correct 596 ms 181172 KB Output is correct
66 Correct 2680 ms 267364 KB Output is correct
67 Correct 1607 ms 303488 KB Output is correct
68 Correct 4151 ms 384664 KB Output is correct
69 Correct 3458 ms 379044 KB Output is correct
70 Correct 1952 ms 225784 KB Output is correct
71 Correct 2442 ms 251348 KB Output is correct
72 Correct 1531 ms 317372 KB Output is correct
73 Correct 3542 ms 377040 KB Output is correct
74 Correct 4669 ms 402480 KB Output is correct
75 Correct 3552 ms 325976 KB Output is correct
76 Correct 1422 ms 256328 KB Output is correct
77 Correct 1310 ms 240308 KB Output is correct
78 Correct 1639 ms 272140 KB Output is correct
79 Correct 2245 ms 329516 KB Output is correct
80 Correct 1672 ms 255672 KB Output is correct
81 Correct 310 ms 150896 KB Output is correct
82 Correct 281 ms 147404 KB Output is correct
83 Correct 539 ms 165176 KB Output is correct
84 Correct 449 ms 154060 KB Output is correct
85 Correct 378 ms 152908 KB Output is correct
86 Correct 558 ms 153484 KB Output is correct
87 Correct 482 ms 152640 KB Output is correct
88 Correct 405 ms 153136 KB Output is correct
89 Correct 494 ms 154576 KB Output is correct
90 Correct 91 ms 132048 KB Output is correct
91 Correct 302 ms 150540 KB Output is correct
92 Correct 486 ms 159664 KB Output is correct
93 Correct 493 ms 162468 KB Output is correct
94 Correct 579 ms 165060 KB Output is correct
95 Correct 560 ms 155228 KB Output is correct
96 Correct 136 ms 136908 KB Output is correct
97 Correct 2133 ms 282584 KB Output is correct
98 Correct 570 ms 170584 KB Output is correct
99 Correct 3766 ms 256064 KB Output is correct
100 Correct 1893 ms 259384 KB Output is correct
101 Correct 3764 ms 356760 KB Output is correct
102 Correct 3639 ms 253924 KB Output is correct
103 Correct 2841 ms 265620 KB Output is correct
104 Correct 2130 ms 234324 KB Output is correct
105 Correct 1438 ms 242256 KB Output is correct
106 Correct 1398 ms 232300 KB Output is correct
107 Correct 3201 ms 318164 KB Output is correct
108 Correct 2841 ms 324284 KB Output is correct
109 Correct 3754 ms 288616 KB Output is correct
110 Correct 3432 ms 309924 KB Output is correct
111 Correct 3015 ms 322348 KB Output is correct
112 Correct 3812 ms 292352 KB Output is correct
113 Correct 308 ms 169140 KB Output is correct
114 Correct 1974 ms 310224 KB Output is correct
115 Correct 3127 ms 357092 KB Output is correct
116 Correct 3451 ms 380516 KB Output is correct
117 Correct 4077 ms 354196 KB Output is correct
118 Correct 4242 ms 309052 KB Output is correct
119 Correct 687 ms 190840 KB Output is correct
120 Correct 1197 ms 258848 KB Output is correct
121 Correct 1487 ms 274504 KB Output is correct
122 Correct 1385 ms 261632 KB Output is correct
123 Correct 1718 ms 266612 KB Output is correct
124 Correct 2072 ms 289716 KB Output is correct
125 Correct 1793 ms 261460 KB Output is correct
126 Correct 2113 ms 319996 KB Output is correct