/ SeriousOJ /

Record Detail

Accepted


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 532.0 KiB
#2 Accepted 2ms 532.0 KiB
#3 Accepted 2ms 484.0 KiB
#4 Accepted 2ms 532.0 KiB
#5 Accepted 2ms 532.0 KiB
#6 Accepted 2ms 580.0 KiB
#7 Accepted 2ms 532.0 KiB
#8 Accepted 2ms 320.0 KiB
#9 Accepted 4ms 532.0 KiB
#10 Accepted 4ms 532.0 KiB
#11 Accepted 4ms 320.0 KiB
#12 Accepted 4ms 532.0 KiB
#13 Accepted 4ms 532.0 KiB
#14 Accepted 5ms 536.0 KiB
#15 Accepted 6ms 532.0 KiB

Code

#include<bits/stdc++.h>
using namespace std;
#define int long long
bool is_big(string &a, string &b){
    if(a.size() > b.size()) return true;
    else if(a.size() < b.size()) return false;
    else return a > b;  // If size is same, then sort lexicographically
}
signed main(){
    int t;
    cin >> t;
    while(t--){
        int n, k;
        cin >> n >> k;
        string ans , tmp;
        string s[n];
        int sz[n];
        for(int i = 0; i < n; i++){
            cin >> s[i];
            //Max = max(Max, s[i]);
            if(is_big(s[i], ans)){
                ans = s[i];
            }
            tmp += s[i];
            int id = i - k - 1;
            sz[i] = s[i].size();
            if(id >= 0) tmp = tmp.substr(sz[id], tmp.size() - (sz[id]));
            if(is_big(tmp, ans)) ans = tmp;
           // ans = max(ans, tmp);
            // if(tmp.size() > ans.size()) ans = tmp;
            // else if( tmp.size() == ans.size() and tmp > ans) ans = tmp;
            
        }
        //if(k == 0) ans = Max;
        cout << ans << "\n";
    }
    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:41:35
Judged At
2024-08-16 16:41:35
Judged By
Score
100
Total Time
6ms
Peak Memory
580.0 KiB