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

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

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

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

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