# your code goes here# void catatPermainan(string klubKandang, string klubTandang, string skor);
# array cetakKlasemen();
# string ambilPeringkat(int nomorPeringkat);
# $klasemen = new Klasemen(['Liverpool', 'Chelsea', 'Arsenal']);
# $klasemen>catatPermainan('Arsenal', 'Liverpool', '2:1');
# $klasemen>catatPermainan('Arsenal', 'Chelsea', '1:1');
# $klasemen>catatPermainan('Chelsea', 'Arsenal', '0:3');
# $klasemen>catatPermainan('Chelsea', 'Liverpool', '3:2');
# $klasemen>catatPermainan('Liverpool', 'Arsenal', '2:2');
# $klasemen>catatPermainan('Liverpool', 'Chelsea', '0:0');
# // mengembalikan hasil ['Arsenal'=>8, 'Chelsea'=>5, 'Liverpool'=>2]
# $klasemen>cetakKlasemen();
# // returns 'Chelsea'
# $klasemen>ambilPeringkat(2);
#Ini Logic
class Klasemen:
def __init__(self, klub):
self.poin = {nama: 0 for nama in klub}
def catatPermainan(self, kandang, tandang, skor):
gol_kandang, gol_tandang = map(int, skor.split(':'))
if gol_kandang > gol_tandang:
self.poin[kandang] += 3
elif gol_kandang < gol_tandang:
self.poin[tandang] += 3
else:
self.poin[kandang] += 1
self.poin[tandang] += 1
def cetakKlasemen(self):
return dict(sorted(self.poin.items(), key=lambda x: (-x[1], x[0])))
def ambilPeringkat(self, peringkat):
return list(self.cetakKlasemen().keys())[peringkat - 1]
klasemen = Klasemen(['Liverpool', 'Chelsea', 'Arsenal'])
klasemen.catatPermainan('Arsenal', 'Liverpool', '2:1')
klasemen.catatPermainan('Arsenal', 'Chelsea', '1:1')
klasemen.catatPermainan('Chelsea', 'Arsenal', '0:3')
klasemen.catatPermainan('Chelsea', 'Liverpool', '3:2')
klasemen.catatPermainan('Liverpool', 'Arsenal', '2:2')
klasemen.catatPermainan('Liverpool', 'Chelsea', '0:0')
print(klasemen.cetakKlasemen())
print(klasemen.ambilPeringkat(2))
IyB5b3VyIGNvZGUgZ29lcyBoZXJlIyB2b2lkIGNhdGF0UGVybWFpbmFuKHN0cmluZyBrbHViS2FuZGFuZywgc3RyaW5nIGtsdWJUYW5kYW5nLCBzdHJpbmcgc2tvcik7CiMgYXJyYXkgY2V0YWtLbGFzZW1lbigpOwojIHN0cmluZyBhbWJpbFBlcmluZ2thdChpbnQgbm9tb3JQZXJpbmdrYXQpOwoKCiMgJGtsYXNlbWVuID0gbmV3IEtsYXNlbWVuKFsnTGl2ZXJwb29sJywgJ0NoZWxzZWEnLCAnQXJzZW5hbCddKTsKIyAka2xhc2VtZW4+Y2F0YXRQZXJtYWluYW4oJ0Fyc2VuYWwnLCAnTGl2ZXJwb29sJywgJzI6MScpOwojICRrbGFzZW1lbj5jYXRhdFBlcm1haW5hbignQXJzZW5hbCcsICdDaGVsc2VhJywgJzE6MScpOwojICRrbGFzZW1lbj5jYXRhdFBlcm1haW5hbignQ2hlbHNlYScsICdBcnNlbmFsJywgJzA6MycpOwojICRrbGFzZW1lbj5jYXRhdFBlcm1haW5hbignQ2hlbHNlYScsICdMaXZlcnBvb2wnLCAnMzoyJyk7CiMgJGtsYXNlbWVuPmNhdGF0UGVybWFpbmFuKCdMaXZlcnBvb2wnLCAnQXJzZW5hbCcsICcyOjInKTsKIyAka2xhc2VtZW4+Y2F0YXRQZXJtYWluYW4oJ0xpdmVycG9vbCcsICdDaGVsc2VhJywgJzA6MCcpOwojIC8vIG1lbmdlbWJhbGlrYW4gaGFzaWwgWydBcnNlbmFsJz0+OCwgJ0NoZWxzZWEnPT41LCAnTGl2ZXJwb29sJz0+Ml0KIyAka2xhc2VtZW4+Y2V0YWtLbGFzZW1lbigpOwojIC8vIHJldHVybnMgJ0NoZWxzZWEnCiMgJGtsYXNlbWVuPmFtYmlsUGVyaW5na2F0KDIpOwoKI0luaSBMb2dpYwoJCmNsYXNzIEtsYXNlbWVuOgogICAgZGVmIF9faW5pdF9fKHNlbGYsIGtsdWIpOgogICAgICAgIHNlbGYucG9pbiA9IHtuYW1hOiAwIGZvciBuYW1hIGluIGtsdWJ9CgogICAgZGVmIGNhdGF0UGVybWFpbmFuKHNlbGYsIGthbmRhbmcsIHRhbmRhbmcsIHNrb3IpOgogICAgICAgIGdvbF9rYW5kYW5nLCBnb2xfdGFuZGFuZyA9IG1hcChpbnQsIHNrb3Iuc3BsaXQoJzonKSkKICAgICAgICBpZiBnb2xfa2FuZGFuZyA+IGdvbF90YW5kYW5nOgogICAgICAgICAgICBzZWxmLnBvaW5ba2FuZGFuZ10gKz0gMwogICAgICAgIGVsaWYgZ29sX2thbmRhbmcgPCBnb2xfdGFuZGFuZzoKICAgICAgICAgICAgc2VsZi5wb2luW3RhbmRhbmddICs9IDMKICAgICAgICBlbHNlOgogICAgICAgICAgICBzZWxmLnBvaW5ba2FuZGFuZ10gKz0gMQogICAgICAgICAgICBzZWxmLnBvaW5bdGFuZGFuZ10gKz0gMQoKICAgIGRlZiBjZXRha0tsYXNlbWVuKHNlbGYpOgogICAgICAgIHJldHVybiBkaWN0KHNvcnRlZChzZWxmLnBvaW4uaXRlbXMoKSwga2V5PWxhbWJkYSB4OiAoLXhbMV0sIHhbMF0pKSkKCiAgICBkZWYgYW1iaWxQZXJpbmdrYXQoc2VsZiwgcGVyaW5na2F0KToKICAgICAgICByZXR1cm4gbGlzdChzZWxmLmNldGFrS2xhc2VtZW4oKS5rZXlzKCkpW3BlcmluZ2thdCAtIDFdCgoKCmtsYXNlbWVuID0gS2xhc2VtZW4oWydMaXZlcnBvb2wnLCAnQ2hlbHNlYScsICdBcnNlbmFsJ10pCgprbGFzZW1lbi5jYXRhdFBlcm1haW5hbignQXJzZW5hbCcsICdMaXZlcnBvb2wnLCAnMjoxJykKa2xhc2VtZW4uY2F0YXRQZXJtYWluYW4oJ0Fyc2VuYWwnLCAnQ2hlbHNlYScsICcxOjEnKQprbGFzZW1lbi5jYXRhdFBlcm1haW5hbignQ2hlbHNlYScsICdBcnNlbmFsJywgJzA6MycpCmtsYXNlbWVuLmNhdGF0UGVybWFpbmFuKCdDaGVsc2VhJywgJ0xpdmVycG9vbCcsICczOjInKQprbGFzZW1lbi5jYXRhdFBlcm1haW5hbignTGl2ZXJwb29sJywgJ0Fyc2VuYWwnLCAnMjoyJykKa2xhc2VtZW4uY2F0YXRQZXJtYWluYW4oJ0xpdmVycG9vbCcsICdDaGVsc2VhJywgJzA6MCcpCgpwcmludChrbGFzZW1lbi5jZXRha0tsYXNlbWVuKCkpIAoKcHJpbnQoa2xhc2VtZW4uYW1iaWxQZXJpbmdrYXQoMikpIA==