QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#798836#9652. Autochessucup-team004AC ✓222ms11720kbC++231.7kb2024-12-04 17:38:332024-12-04 17:38:34

Judging History

This is the latest submission verdict.

  • [2024-12-04 17:38:34]
  • Judged
  • Verdict: AC
  • Time: 222ms
  • Memory: 11720kb
  • [2024-12-04 17:38:33]
  • Submitted

answer

#include <bits/stdc++.h>

using i64 = long long;
using u64 = unsigned long long;
using u32 = unsigned;
using u128 = unsigned __int128;

void solve() {
    int M, N, K;
    std::cin >> M >> N >> K;
    
    std::set<int> avai;
    for (int i = 0; i < N; i++) {
        avai.insert(i);
    }
    
    std::vector<std::string> name(N);
    std::vector<int> level(N);
    
    std::map<std::pair<std::string, int>, std::vector<int>> pos;
    
    for (int i = 0; i < M; i++) {
        std::string s;
        std::cin >> s;
        
        if (pos.contains({s, 3})) {
            continue;
        }
        
        int l = 1;
        while (l < 3 && pos.contains({s, l}) && pos[{s, l}].size() == K - 1) {
            for (auto j : pos[{s, l}]) {
                name[j] = "";
                level[j] = 0;
                avai.insert(j);
            }
            pos[{s, l}].clear();
            l++;
        }
        
        if (!avai.empty()) {
            int j = *avai.begin();
            name[j] = s;
            level[j] = l;
            avai.erase(j);
            pos[{s, l}].push_back(j);
        }
    }
    
    for (int i = 0; i < N; i++) {
        if (name[i].empty()) {
            std::cout << -1;
        } else {
            std::cout << name[i];
            if (level[i] > 1) {
                std::cout << level[i];
            }
        }
        std::cout << " \n"[i == N - 1];
    }
}

int main() {
    std::ios::sync_with_stdio(false);
    std::cin.tie(nullptr);
    
    int t;
    std::cin >> t;
    
    for (int i = 1; i <= t; i++) {
        std::cout << "Case " << i << ": ";
        solve();
    }
    
    return 0;
}

这程序好像有点Bug,我给组数据试试?

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 222ms
memory: 11720kb

input:

100
10 10 2
hpt
qnfllwekzo
hpt
hpt
hpt
qnfllwekzo
hpt
qnfllwekzo
hpt
hpt
5 10 2
odqxvyfkb
odqxvyfkb
gbyhvssn
odqxvyfkb
odqxvyfkb
7 10 2
ovfjfvbey
ovfjfvbey
ovfjfvbey
ovfjfvbey
ovfjfvbey
ovfjfvbey
siwnj
6 10 2
lpoat
qs
lpoat
lpoat
qs
qs
8 10 2
gyetnkmb
spssuxz
spssuxz
spssuxz
gyetnkmb
gyetnkmb
spssux...

output:

Case 1: hpt3 qnfllwekzo2 qnfllwekzo -1 -1 -1 -1 -1 -1 -1
Case 2: odqxvyfkb3 gbyhvssn -1 -1 -1 -1 -1 -1 -1 -1
Case 3: ovfjfvbey3 siwnj -1 -1 -1 -1 -1 -1 -1 -1
Case 4: lpoat2 qs2 lpoat qs -1 -1 -1 -1 -1 -1
Case 5: gyetnkmb2 spssuxz3 -1 gyetnkmb -1 -1 -1 -1 -1 -1
Case 6: frale3 -1 -1 -1 -1 -1 -1 -1 -1 ...

result:

ok 100 lines

Extra Test:

score: 0
Extra Test Passed