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

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

<1>
เราสามารถจัดเก็บตารางที่มีแต่เลข 0 กับ 1 ด้วย dict ที่มี
- key 'shape' ที่มี value เป็น
       tuple 2 ช่องเก็บจำนวนแถวและจำนวนคอลัมน์
- key 'data' ที่มี value เป็น dict ที่มี
    - key   เป็นเลขแถว
    - value เป็นลิสต์เก็บเลขคอลัมน์ในแถวนั้นที่มีข้อมูลเป็น 0
    - คำว่าเลขแถวเลขคอลัมน์ คืออินเด็กซ์ของแถวและคอลัมน์
เช่น ตาราง
    1111111
    1110110
    1000001
    1111111
    1111011
    1111111
เก็บด้วย dict
    {
      'shape': (6,7),
      'data': {
                0: [],
                1: [3,6],
                2: [3,1,2,4,5],
                4: [4]
              }
    }
ให้สังเกตว่า แถว 0, 3 และ 5 ไม่มีเลข 0 เลย 
อาจมีหรือไม่มีเลขแถวใน dict ก็ได้

จงเขียนฟังก์ชัน f(x)
- รับ x เป็น dict ที่แทนตารางในลักษณะข้างต้น
- คืน ลิสต์ [i,j] ที่
  - i น้อยกว่า j
  - i กับ j เป็นเลขแถวของคู่แถวที่มี 0 อยู่ในคอลัมน์
    ที่ไม่เหมือนกัน (คือ ถ้ามีในแถวหนึ่งจะไม่มีในอีกแถว)
    เป็นจำนวนมากสุด ถ้ามีมากสุดหลายคู่แถว ก็คืนสัก 1 คู่

เช่น ตาราง
    10111
    01001
    10011
    11111
แทนด้วย 
    x = {
          'shape': (4,5),
          'data' : {0:[1], 1:[0,2,3], 2:[1,2]}
        }
คำสั่ง f(x) จะคืน [0, 1]