CSES - Putka Open 2015 – finaali - Results
Submission details
Task:Ravintola
Sender:
Submission time:2015-12-20 13:30:52 +0200
Language:C++
Status:READY
Result:15
Feedback
groupverdictscore
#1ACCEPTED15
#20
#30
Test results
testverdicttimegroup
#1ACCEPTED0.05 s1details
#2ACCEPTED0.05 s1details
#3ACCEPTED0.05 s1details
#4ACCEPTED0.06 s1details
#5ACCEPTED0.06 s1details
#60.15 s2details
#70.14 s2details
#80.15 s2details
#90.14 s2details
#100.14 s2details
#110.14 s3details
#120.13 s3details
#130.14 s3details
#140.13 s3details
#150.14 s3details

Code

#include <iostream>
#include <set>
#include <vector>
#include <algorithm>
#define F first
#define S second
using namespace std;
int n;

vector<pair<pair<int, int>, int> > ab;
vector<pair<int, int> > ansp;


int mt[101010];
int st[101010];

set<pair<int, int> > pt;

int main(){
  cin >> n;
  for (int i=0; i<n; ++i){
    int a, b;
    cin >> a >> b;
    ++mt[a]; --mt[b];
    ab.push_back(make_pair(make_pair(a, b), i+1));
  }sort(ab.begin(), ab.end());
  for (int i=1; i<101010; ++i)st[i]=st[i-1]+mt[i];
  int ans=0;
  for (int i=0; i<101010; ++i) ans=max(ans, st[i]);
  cout << ans << "\n";
  for (int i=1; i<=ans; ++i){
    pt.insert(make_pair(0, i));
  }
  
  for (int i=0; i<n; ++i){
    int a=ab[i].F.F;
    int b=ab[i].F.S;
    int ix=ab[i].S;
    set<pair<int, int> >::iterator it=pt.lower_bound(make_pair(-a, 0));
    ansp.push_back(make_pair(ix, (*it).second));
    pt.insert(make_pair(-b, (*it).second));
    pt.erase(it);
  }
  sort(ansp.begin(), ansp.end());
  for (int i=0; i<n; ++i){
    cout << ansp[i].S <<"\n";
  }
}

Test details

Test 1

Group: 1

Verdict: ACCEPTED

input
10
78 83
61 70
95 100
84 100
...

correct output
6
5
5
2
1
...

user output
6
5
5
2
1
...

Test 2

Group: 1

Verdict: ACCEPTED

input
10
90 98
99 100
96 100
3 47
...

correct output
4
1
1
3
1
...

user output
4
1
4
3
1
...

Test 3

Group: 1

Verdict: ACCEPTED

input
10
65 87
89 97
32 53
53 73
...

correct output
5
5
4
3
3
...

user output
5
5
5
3
3
...

Test 4

Group: 1

Verdict: ACCEPTED

input
10
54 68
50 60
87 89
85 98
...

correct output
6
6
3
4
1
...

user output
6
6
3
5
1
...

Test 5

Group: 1

Verdict: ACCEPTED

input
10
53 54
41 47
56 68
6 23
...

correct output
5
2
2
2
2
...

user output
5
2
2
3
2
...

Test 6

Group: 2

Verdict:

input
1000
421639537 911563318
736166797 959945771
397431507 584367626
330835287 620406496
...

correct output
358
264
215
218
262
...

user output
(empty)

Test 7

Group: 2

Verdict:

input
1000
452773897 489658400
791565174 873685909
837939163 961670907
54444659 861374731
...

correct output
393
181
151
140
63
...

user output
(empty)

Test 8

Group: 2

Verdict:

input
1000
689073468 881081127
613328959 683799585
688380485 930935455
629559449 915788743
...

correct output
388
115
358
93
170
...

user output
(empty)

Test 9

Group: 2

Verdict:

input
1000
376658209 496021591
750793088 930681206
293307485 666877615
774206996 816529147
...

correct output
368
287
36
225
114
...

user output
(empty)

Test 10

Group: 2

Verdict:

input
1000
273998160 725204323
241875005 614630291
765984835 939309031
345615468 836277449
...

correct output
384
240
215
156
163
...

user output
(empty)

Test 11

Group: 3

Verdict:

input
100000
784035755 893627685
78761690 459329957
877042231 976087228
479438596 515807337
...

correct output
36779
4699
7608
7073
23546
...

user output
(empty)

Test 12

Group: 3

Verdict:

input
100000
952007928 998571741
60494193 790262572
37935588 450716710
518464251 658961939
...

correct output
36979
5145
5964
3813
17811
...

user output
(empty)

Test 13

Group: 3

Verdict:

input
100000
195552215 647391707
698053972 908728728
923590842 940850158
17166936 129136741
...

correct output
36760
17563
24436
3901
1722
...

user output
(empty)

Test 14

Group: 3

Verdict:

input
100000
792681664 892304133
442916094 984949977
880260482 922213143
417012279 978533731
...

correct output
36633
5062
11088
8773
23538
...

user output
(empty)

Test 15

Group: 3

Verdict:

input
100000
662244341 835857878
88360474 126816291
245452241 989480216
32665049 226410123
...

correct output
36920
28994
8379
21303
3304
...

user output
(empty)