/ SeriousOJ /

Record Detail

Wrong Answer


  
# Status Time Cost Memory Cost
#1 Accepted 2ms 332.0 KiB
#2 Accepted 28ms 672.0 KiB
#3 Accepted 29ms 668.0 KiB
#4 Accepted 32ms 696.0 KiB
#5 Accepted 27ms 680.0 KiB
#6 Accepted 29ms 668.0 KiB
#7 Wrong Answer 31ms 792.0 KiB
#8 Wrong Answer 5ms 540.0 KiB
#9 Wrong Answer 2ms 540.0 KiB
#10 Wrong Answer 26ms 744.0 KiB
#11 Wrong Answer 2ms 328.0 KiB
#12 Wrong Answer 7ms 488.0 KiB
#13 Wrong Answer 14ms 688.0 KiB
#14 Wrong Answer 11ms 628.0 KiB
#15 Wrong Answer 25ms 688.0 KiB

Code

#include <bits/stdc++.h>
using namespace std;

#define fastio ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL)

// Function to compare two large numbers as strings by splitting
bool compare_as_large_integers(const string &a, const string &b) {
    if (a.length() != b.length()) {
        return a.length() > b.length();
    }
    return a > b;  // Lexicographical comparison if lengths are equal
}

void solve() {
    int n, k;
    cin >> n >> k;
    vector<string> arr(n);
    for (int i = 0; i < n; i++) {
        cin >> arr[i];
    }

    while (k > 0 && arr.size() > 1) {
        string max_concat = "";
        int max_index = 0;
        for (int j = 0; j < arr.size() - 1; j++) {
            string concat = arr[j] + arr[j + 1];  
            if (compare_as_large_integers(concat, max_concat)) {
                max_concat = concat;
                max_index = j;
            }
        }
     
        arr[max_index] = max_concat; 
        arr.erase(arr.begin() + max_index + 1); 
        k--;
    }
    string max_element_in_array = *max_element(arr.begin(), arr.end());
    cout << max_element_in_array << endl;
}

int main() {
    fastio;
    int t;
    cin >> t;
    while (t--) {
        solve();
    }
    return 0;
}

Information

Submit By
Type
Submission
Problem
P1083 Number concatenation
Contest
Bangladesh 2.0
Language
C++20 (G++ 13.2.0)
Submit At
2024-08-16 16:37:07
Judged At
2024-10-03 13:26:32
Judged By
Score
30
Total Time
32ms
Peak Memory
792.0 KiB