Pagini recente » Cod sursa (job #3130875) | Cod sursa (job #13444) | Cod sursa (job #3293244) | Clasament simulare05032019 | Cod sursa (job #2646576)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("sortare.in");
ofstream fout("sortare.out");
int n, v[5005][3], maxim, ans[5005];
void pune(int pos, int x){
int i = 1, j = 1;
while (pos){
if (ans[i] != 0){
++i;
}
else{
--pos;
j = i;
++i;
}
}
ans[j] = x;
}
int main(){
fin >> n;
v[0][0] = v[0][1] = v[0][2] = 1;
for (int i = 2; i <= n; ++i){
fin >> v[i][0] >> v[i][1] >> v[i][2];
sort(v[i], v[i] + 3);
}
while (n > 0){
++maxim;
if (v[n][0] == v[n][1] || v[n][1] == v[n][2]){
pune(v[n][1], n);
n -= 1;
}
else{
pune(v[n][2], n);
pune(v[n][1], n - 1);
n -= 2;
}
}
fout << maxim << "\n";
for (int i = 1; ans[i] != 0; ++i){
fout << ans[i] << " ";
}
fin.close();
fout.close();
return 0;
}