Pagini recente » Monitorul de evaluare | Monitorul de evaluare | Cod sursa (job #188849) | DeehoroEjkoli | Cod sursa (job #2064640)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("sortare.in");
ofstream fout("sortare.out");
#define MAXN 5000
int a[MAXN + 1], b[MAXN + 1], c[MAXN + 1], v[MAXN + 1], n;
inline void pune(int x) {
int y = 0;
while (x) x -= (v[++y] == 0);
v[y] = n;
n--;
}
int main() {
int N;
fin >> N;
n = N;
for (int i = 2; i <= n; i++)
fin >> a[i] >> b[i] >> c[i];
int ans = 1;
while (n > 1) {
ans++;
if (a[n] == b[n] || b[n] == c[n] || c[n] == a[n])
pune(c[n]);
else {
pune(max(b[n], c[n]));
pune(min(b[n], c[n]));
}
}
if (n == 1)
pune(1);
fout << ans << '\n';
for (int i = 1; i <= N; i++)
fout << v[i] << ' ';
return 0;
}