답안 #977286

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
977286 2024-05-07T16:28:36 Z alexdd Zalmoxis (BOI18_zalmoxis) C++17
0 / 100
1000 ms 188496 KB
#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,k;
set<pair<int,int>> init;
set<pair<int,pair<int,int>>> s;
set<pair<pair<int,int>,int>> s2;
signed main()
{
    cin>>n>>k;
    int a;
    for(int i=1;i<=n;i++)
    {
        cin>>a;
        int cv = 1000005LL*i;
        init.insert({cv,a});
        s.insert({a,{cv,cv}});
        s2.insert({{cv,cv},a});
    }
    while((int)s.size()>1 && k>=0)
    {
        pair<int,pair<int,int>> aux = *s.begin();
        int val = aux.first;
        int le = aux.second.first;
        int ri = aux.second.second;
        auto it = s2.lower_bound({{le,ri},val});
        if(next(it)!=s2.end() && (*next(it)).second==val)
        {
            int le2 = (*next(it)).first.first;
            int ri2 = (*next(it)).first.second;

            s.insert({val+1,{le,ri2}});
            s2.insert({{le,ri2},val+1});

            assert(s.find({val,{le2,ri2}})!=s.end());s.erase({val,{le2,ri2}});
            assert(s2.find({{le2,ri2},val})!=s2.end());s2.erase({{le2,ri2},val});

            assert(s.find({val,{le,ri}})!=s.end());s.erase({val,{le,ri}});
            assert(s2.find({{le,ri},val})!=s2.end());s2.erase({{le,ri},val});
        }
        else
        {
            k--;
            s.insert({val,{ri+1,ri+1}});
            s2.insert({{ri+1,ri+1},val});
            init.insert({ri+1,val});
        }
    }
    if(k>0)
    {
        int le = (*s.begin()).second.first;
        int ri = (*s.begin()).second.second;
        int val = (*s.begin()).first;
        if(k==1)
        {
            init.insert({ri+1,val});
        }
        else
        {

        }
    }
    for(auto x:init)
    {
        cout<<x.second<<" ";
    }
    return 0;
}

Compilation message

zalmoxis.cpp: In function 'int main()':
zalmoxis.cpp:51:13: warning: unused variable 'le' [-Wunused-variable]
   51 |         int le = (*s.begin()).second.first;
      |             ^~
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1040 ms 188240 KB Time limit exceeded
2 Execution timed out 1066 ms 188328 KB Time limit exceeded
3 Execution timed out 1077 ms 188088 KB Time limit exceeded
4 Execution timed out 1075 ms 188016 KB Time limit exceeded
5 Execution timed out 1077 ms 188204 KB Time limit exceeded
6 Execution timed out 1098 ms 188200 KB Time limit exceeded
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1027 ms 188412 KB Time limit exceeded
2 Execution timed out 1049 ms 188044 KB Time limit exceeded
3 Execution timed out 1059 ms 187884 KB Time limit exceeded
4 Execution timed out 1040 ms 188240 KB Time limit exceeded
5 Execution timed out 1075 ms 188032 KB Time limit exceeded
6 Execution timed out 1022 ms 188496 KB Time limit exceeded
7 Execution timed out 1071 ms 188248 KB Time limit exceeded
8 Execution timed out 1057 ms 188224 KB Time limit exceeded
9 Execution timed out 1033 ms 150452 KB Time limit exceeded
10 Incorrect 823 ms 57540 KB Unexpected end of file - int32 expected
11 Execution timed out 1101 ms 94108 KB Time limit exceeded
12 Incorrect 1 ms 344 KB Unexpected end of file - int32 expected
13 Incorrect 0 ms 344 KB Unexpected end of file - int32 expected
14 Incorrect 1 ms 344 KB Unexpected end of file - int32 expected