/*
#include <stdio.h>
#include <stdlib.h>
int base[16] = {0};
int c, v, w;
int s = 1;
void pri(){
printf(" %d\n %d %d\n %d %d %d %d\n%d %d %d %d %d %d %d %d",
base[1], base[2], base[3], base[4], base[5],
base[6], base[7], base[8], base[9], base[10],
base[11], base[12], base[13], base[14], base[15]);
return;
}
void f(int c){
if(base[s]==0){
base[s] = c;
printf("base[%d] = %d\n");
s = 1;
return;
}
else if(c<base[s] && s*2 < 16 && base[s*2]==0){
base[s*2] = c;
printf("base[%d] = %d\n", s*2, c);
s = 1;
return;
}
else if(c>base[s] && s*2 + 1 < 16 && base[s*2 + 1]==0){
base[s*2 + 1] = c;
printf("base[%d] = %d\n", s*2 + 1, c);
s = 1;
return;
}
if(c<base[s] && s*2< 16 && base[s*2]!=0){
if(c<base[s*2]){
if(s>1) s = s - 1;
printf("return f(%d), s = %d\n", c, s);
return f(c);
}
else{
v = base[s];
base[s] = c;
if(base[2*s+1]==0){
base[2*s+1] = v;
printf("base[%d] = %d, base[%d] = %d, s = 1\n", s, c, 2*s+1, v);
s = 1;
return;
}
if(base[2*s+1]>v){
w = base[2*s];
base[2*s] = c;
base[s] = v;
printf("base[%d] = %d, base[%d] = %d, s = %d, return f(%d)\n", 2*s, c, s, v, s-1, w);
s = s-1;
return f(w);
}
}
}
if(c>base[s] && s*2+1> 16 && base[s*2+1]!=0){
if(c>base[s*2+1]){
s = s + 1;
printf("return f(%d), s = %d\n", c, s);
return f(c);
}
else{
v = base[s];
base[s] = c;
if(base[2*s]==0){
base[2*s] = v;
printf("base[%d] = %d, base[%d] = %d, s = 1\n", s, c, 2*s, v);
s = 1;
return;
}
if(base[2*s]<v){
w = base[2*s+1];
base[2*s+1] = c;
base[s] = v;
printf("base[%d] = %d, base[%d] = %d, s = %d, return f(%d)\n", 2*s+1, c, s, v, s+1, w);
s = s+1;
return f(w);
}
}
}
}
int main(){
for(int i = 1; i < 16; i++){
printf("\n ют╥б : ");
scanf("%d", &c);
if(base[1] == 0){
base[1] = c;
printf("base[1] = %d\n", c);
continue;
}
else f(c);
}
pri();
}
*/
#include <stdio.h>
#include <stdlib.h>
int base[16] = {0};
int save[16] = {0};
int c, v, k = 0;
void pri(){
printf(" %d\n %d %d\n %d %d %d %d\n%d %d %d %d %d %d %d %d",
base[1], base[2], base[3], base[4], base[5],
base[6], base[7], base[8], base[9], base[10],
base[11], base[12], base[13], base[14], base[15]);
return;
}
void f(int c, int i){
if(i == 0){
save[1] = c;
k++;
return;
}
for(int t=1; t<16; t++){
if(save[t]<c){
if(save[t+1]!=0 && save[t+1]<c){
v = save[t+1];
save[t+1] = c;
return f(v, i);
}
if(save[t+1]==0){
save[t+1] = c;
return;
}
}
}
}
void g(){
base[8] = save[1];
base[4] = save[2];
base[9] = save[3];
base[2] = save[4];
base[10] = save[5];
base[5] = save[6];
base[11] = save[7];
base[1] = save[8];
base[12] = save[9];
base[6] = save[10];
base[13] = save[11];
base[3] = save[12];
base[14] = save[13];
base[7] = save[14];
base[15] = save[15];
return;
}
int main(){
for(int i = 1; i < 16; i++){
printf("\n ют╥б : ");
scanf("%d", &c);
f(c, i);
}
g();
pri();
}
#include <stdio.h>
int base[16] = {0};
void insert(int idx, int val) {
if (idx > 15) return;
if (base[idx] == 0) {
base[idx] = val;
return;
}
if (val < base[idx]) {
insert(idx * 2, val);
} else {
insert(idx * 2 + 1, val);
}
}
void pri() {
printf(" %d\n", base[1]);
printf(" %d %d\n", base[2], base[3]);
printf(" %d %d %d %d\n", base[4], base[5], base[6], base[7]);
printf("%d %d %d %d %d %d %d %d\n",
base[8], base[9], base[10], base[11],
base[12], base[13], base[14], base[15]);
}
int main() {
int c;
for (int i = 0; i < 15; i++) {
scanf("%d", &c);
insert(1, c);
}
pri();
return 0;
}