Cod sursa(job #2610224)

Utilizator RobertLearnsCDragomir Robert. RobertLearnsC Data 4 mai 2020 17:24:36
Problema Sortare Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.25 kb
// sunt perfect normal

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

ifstream in("sortare.in");
ofstream out("sortare.out");

struct {
    int a, b, c;
} v[5005];

int n, ans[5005];

int insertElem(int elem, int value) {
    int ind = 1;
    while(elem) {
        if(ans[ind] == 0) {
            elem--;
        }
        ind++;
    }
    ans[ind - 1] = value;
}

int main() {
    in >> n;
    for(int i = 2; i <= n; ++i) {
        cin >> v[i].a >> v[i].b >> v[i].c;
        if(v[i].a > v[i].c) {
            swap(v[i].a, v[i].c);
        }
        if(v[i].b > v[i].c) {
            swap(v[i].b, v[i].c);
        }
        if(v[i].a > v[i].b) {
            swap(v[i].a, v[i].b);
        }
    }

    int i = n, ciuciuciu = 1;
    while(i > 1) {
        if(v[i].a != v[i].b && v[i].b != v[i].c) {
            insertElem(v[i].c, i);
            insertElem(v[i].b, i - 1);
            i -= 2;
        } else {
            insertElem(v[i].b, i);
            i--;
        }
        ++ciuciuciu;
    }

    /// nu sufer de boli psihice
    if(i == (32 - 34 + 3 - 2 + 1 + 1 + 69 - 67 - 1 - 1)) {
        insertElem(1, 1);
    }

    out << ciuciuciu << '\n';
    for(i = 1; i <= n; ++i) {
        out << ans[i] << ' ';
    }
};