/ SeriousOJ /

Record Detail

Runtime Error


  
# Status Time Cost Memory Cost
#1 Accepted 2ms 540.0 KiB
#2 Accepted 5ms 776.0 KiB
#3 Accepted 6ms 772.0 KiB
#4 Runtime Error 2ms 680.0 KiB
#5 Accepted 6ms 756.0 KiB
#6 Accepted 7ms 2.66 MiB
#7 Wrong Answer 7ms 3.098 MiB
#8 Wrong Answer 3ms 488.0 KiB
#9 Runtime Error malloc(): unaligned tcache chunk detected 2ms 576.0 KiB
#10 Wrong Answer 6ms 1.562 MiB
#11 Wrong Answer 2ms 480.0 KiB
#12 Wrong Answer 3ms 608.0 KiB
#13 Wrong Answer 5ms 860.0 KiB
#14 Wrong Answer 5ms 716.0 KiB
#15 Wrong Answer 6ms 2.023 MiB

Code

#include<bits/stdc++.h>
using namespace std;
#define int long long int 
#define nl "\n"
#define all(x) (x).begin(), (x).end()
#define Yes cout<<"Yes"<<"\n";
#define No  cout<<"No"<<"\n"; 
string concatenate(const string &a, const string &b) {
    return a + b;
}
struct Compare {
    bool operator()(const pair<string, int> &a, const pair<string, int> &b) {
        return a.first < b.first;
    }
};
void run(int t){
    int N, K;
        cin >> N >> K;
        vector<string> a(N);
        for (int i = 0; i < N; ++i) {
            cin >> a[i];
        }
        priority_queue<pair<string, int>, vector<pair<string, int>>, Compare> maxHeap;
        for (int i = 0; i < N - 1; ++i) {
            string concat1 = concatenate(a[i], a[i + 1]);
            maxHeap.push({concat1, i});
        }
        for (int i = 0; i < K; ++i) {
            if (maxHeap.empty()) break;

            auto [maxConcat, index] = maxHeap.top();
            maxHeap.pop();

            a[index] = maxConcat;
            a.erase(a.begin() + index + 1);

            if (index > 0) {
                string concat1 = concatenate(a[index - 1], a[index]);
                maxHeap.push({concat1, index - 1});
            }
            if (index < a.size() - 1) {
                string concat2 = concatenate(a[index], a[index + 1]);
                maxHeap.push({concat2, index});
            }
        }
        cout << *max_element(all(a)) << nl;
}
int32_t main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int t=1;
    cin >> t;
    int c  = 1;
    while(t--){
        //cout << "Case " << c++ << ": ";
        run(t);
    }
    return 0;
}

Information

Submit By
Type
Submission
Problem
P1083 Number concatenation
Contest
Bangladesh 2.0
Language
C++17 (G++ 13.2.0)
Submit At
2024-08-16 15:55:45
Judged At
2024-10-03 13:29:27
Judged By
Score
25
Total Time
7ms
Peak Memory
3.098 MiB