Problemi 041

Kërkesa

Bëni një program i cili gjen nëse numrat e një liste përmbahen në një listë tjetër.

Referenca: https://www.codechef.com/problems/CHEFSQ

Shembull

$ cat input.txt
4
6
1 2 3 4 5 6
3
2 3 4
6
22 5 6 33 1 4
2
4 15
6
22 5 6 33 1 4
2
1 4
6
22 5 6 33 1 4
2
4 1

$ python3 prog.py < input.txt
Yes
No
Yes
Yes

Zgjidhja 1

T = int(input())
for t in range(T):
    n1 = int(input())
    L1 = list(map(int, input().split()))
    n2 = int(input())
    L2 = list(map(int, input().split()))
    for n in L2:
        if n not in L1:
            print('No')
            break
    else:
        print('Yes')

Sqarime

Për çdo element të listës së dytë kontrollojmë nëse ndodhet në listën e parë.

Zgjidhja 2

for _ in range(int(input())):
    input()
    S1 = set(map(int, input().split()))
    input()
    S2 = set(map(int, input().split()))
    print('Yes') if S2.issubset(S1) else print('No')

Sqarime

Duke i trajtuar listat e dhëna të numrave si bashkësi, kontrollojmë nëse bashkësia e dytë është nënbashkësi e të parës (me anë të funksionit issubset())

Detyra

Dejvi ka disa shokë të çuditshëm. Me rastin e ditëlindjes së tij secili prej tyre i ka kërkuar që ta qerasë në një datë të caktuar, me kushtin që do ta prishë shoqërinë në rast se nuk e qeras pikërisht në atë datë. Mirëpo Dejvi nuk mund të qerasë më shumë se një prej tyre në një datë të caktuar. Gjeni se me sa prej tyre mund ta ruajë shoqërinë.

Referenca: https://www.codechef.com/problems/CFRTEST

Shembull

$ cat input.txt
2
2
3 2
2
1 1

$ python3 prog.py < input.txt
2
1

Në rastin e parë, të dy shokët e kërkojnë qerasjen në data të ndryshme, kështu që mund ta ruajë shoqërinë me të dy. Në rastin e dytë, të dy e kërkojnë qerasjen në të njëjtën ditë, kështu që mund ta ruajë shoqërinë vetëm me njërin prej tyre.