การสอบปลายภาค: PART C1

เขียนตอบแต่ละข้อเริ่มด้วยเลขข้อในรูปแบบ <เลขข้อ> เช่น
<1>
พิมพ์คำตอบโปรแกรมข้อที่ 1
...
...
และอย่าลืมกด SUBMIT ด้วย (ส่งได้หลายครั้ง จะตรวจครั้งล่าสุด)

<1>
กำหนดให้ x0 เป็นลิสต์ของจำนวนเต็ม
- ให้ x1 คือลิสต์ที่ได้จากการนำสองตัวติดกันใน x0 มาหาตัวน้อย 
  เช่น x0 = [7, 9, 8, 2] จะได้ 
      x1 = [min(7+9), min(9+8), min(8+2)] = [7, 8, 2]
- ให้ x2 คือลิสต์ที่ได้จากการนำสองตัวติดกันใน x1 มาหาตัวน้อย
  ต่อจากตัวอย่างที่แล้ว ได้ x2 = [min(7+8), min(8+2)] = [7, 2]
- ให้ x3 คือลิสต์ที่ได้จากการนำสองตัวติดกันใน x2 มาหาตัวน้อย
  ต่อจากตัวอย่างที่แล้ว ได้ x3 = [min(7+2)] = [2]
- แล้วก็ไม่สามารถหา x4 ได้แล้ว เพราะ x3 มีตัวเดียว

จงเขียนฟังก์ชัน f(x0) ที่
- รับ x0 เป็นลิสต์ของจำนวนเต็มมีข้อมูลอย่างน้อย 1 ตัว
- คืนลิสต์ซ้อนลิสต์ [xk, ..., x2, x1, x0] 
  โดยที่ x1, x2, ... เป็นลิสต์ที่หาได้ด้วยวิธีข้างต้น
       xk คือลิสต์ที่เหลือแค่ตัวเดียว

เช่น f([7, 9, 8, 2]) ได้
    [[2], [7, 2], [7, 8, 2], [7, 9, 8, 2]]