답안 #1100787

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1100787 2024-10-14T17:39:10 Z Kirill22 DEL13 (info1cup18_del13) C++17
15 / 100
9 ms 1808 KB
#include "bits/stdc++.h"

using namespace std;

void solve() {
    int n, m;
    cin >> n >> m;
    if (!m) {
        cout << -1 << '\n';
        return;
    }
    vector<int> a(n);
    for (int i = 0; i < m; i++) {
        int x;
        cin >> x;
        x--;
        a[x] = 1;
    }
    vector<int> ans, tmp, used(n);
    for (int i = 0; i < n; ) {
        if (a[i] == 1) {
            i++;
            continue;
        }
        int j = i;
        while (j < n && a[j] == 0) {
            j++;
        }
        for (int v = i; v < j; v++) {
            tmp.push_back(v);
        }
        while ((int) tmp.size() >= 3) {
            ans.push_back(tmp.end()[-2]);
            used[tmp.end()[-1]] = used[tmp.end()[-3]] = 1;
            tmp.pop_back();
            tmp.pop_back();
            tmp.pop_back();
            tmp.push_back(ans.back());
        }
        tmp.clear();
        i = j;
    }
    int want = 0;
    for (int i = 0; i < n; i++) {
        if (used[i]) {
            continue;
        }
        if (a[i] == 1) {
            if (want) {
                cout << -1 << '\n';
                return;
            }
            while ((int) tmp.size() >= 3) {
                ans.push_back(tmp.end()[-2]);
                tmp.pop_back();
                tmp.pop_back();
                tmp.pop_back();
                tmp.push_back(ans.back());
            }
            want = (int) tmp.size();
            tmp.clear();
            for (int j = 0; j < want; j++) {
                ans.push_back(i);
            }
        } else {
            if (want) {
                want--;
            } else {
                tmp.push_back(i);
            }
        }
    }
    if (!tmp.empty() || want) {
        cout << -1 << '\n';
        return;
    }
    cout << (int) ans.size() << '\n';
    for (auto& i : ans) {
        cout << i + 1 << " ";
    }
    cout << '\n';
}

int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int t = 1;
    cin >> t;
    while (t--) {
        solve();
    }
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 336 KB Output isn't correct
2 Incorrect 1 ms 336 KB Output isn't correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 336 KB Output isn't correct
2 Incorrect 1 ms 336 KB Output isn't correct
3 Incorrect 3 ms 336 KB Output isn't correct
4 Incorrect 3 ms 336 KB Output isn't correct
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 592 KB Output is correct
2 Correct 3 ms 1684 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 336 KB Output isn't correct
2 Incorrect 1 ms 336 KB Output isn't correct
3 Incorrect 3 ms 336 KB Output isn't correct
4 Incorrect 3 ms 336 KB Output isn't correct
5 Incorrect 1 ms 336 KB Output isn't correct
6 Incorrect 1 ms 336 KB Output isn't correct
7 Incorrect 1 ms 336 KB Output isn't correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 336 KB Output isn't correct
2 Incorrect 1 ms 336 KB Output isn't correct
3 Incorrect 3 ms 336 KB Output isn't correct
4 Incorrect 3 ms 336 KB Output isn't correct
5 Incorrect 1 ms 336 KB Output isn't correct
6 Incorrect 1 ms 336 KB Output isn't correct
7 Incorrect 1 ms 336 KB Output isn't correct
8 Incorrect 5 ms 1808 KB Output isn't correct
9 Incorrect 6 ms 1684 KB Output isn't correct
10 Incorrect 5 ms 1616 KB Output isn't correct
11 Incorrect 9 ms 1740 KB Output isn't correct