File tree Expand file tree Collapse file tree 1 file changed +37
-0
lines changed
Expand file tree Collapse file tree 1 file changed +37
-0
lines changed Original file line number Diff line number Diff line change 1+ #include < string>
2+ #include < vector>
3+ #include < map>
4+ #include < iostream>
5+
6+ using namespace std ;
7+
8+ vector<long long > solution (long long k, vector<long long > room_number) {
9+ vector<long long > answer;
10+ map<long long , long long > m;
11+ m[-1 ] = -1 ;
12+ m[k+2 ] = k+2 ;
13+ for (long long num : room_number){
14+ auto piv = m.upper_bound (num);
15+ auto aft = piv--;
16+ if (piv->second + 1 >= num){
17+ piv->second ++;
18+ answer.push_back (piv->second );
19+ if (piv->second + 1 == aft->first ){
20+ piv->second = aft->second ;
21+ m.erase (aft);
22+ }
23+ }
24+ else {
25+ answer.push_back (num);
26+ if (num + 1 == aft->first ){
27+ long long temp = aft->second ;
28+ m.erase (aft);
29+ m[num] = temp;
30+ }
31+ else m[num] = num;
32+ }
33+
34+ }
35+
36+ return answer;
37+ }
You can’t perform that action at this time.
0 commit comments