Программа работает слишком долго

Рейтинг: 0Ответов: 1Опубликовано: 14.06.2023

Всем привет, решала такую задачу:

Похожие массивы

Назовём два массива похожими, если они состоят из одних и тех же элементов (без учёта кратности). По двум данным массивам выясните, похожие они или нет.

Входные данные

В первой строке содержится число N(1≤N≤100000) — размер первого массива. Во второй строке идут N целых чисел, не превосходящих по модулю 109 , — элементы массива. Далее аналогично задаётся второй массив.

Выходные данные

Программа должна вывести слово YES, если массивы похожи, и слово NO в противном случае.

Примеры

Ввод 
3
1 7 9
4
9 7 7 1

Вывод

YES 

Ввод

4
1 2 3 4
3
5 1 3

Вывод

NO

Я написала по ней программу


n=int(input()) 
l1=list(map(int, input().split())) 
m=int(input())
l2=list(map(int, input().split())) 
ans="YES"
if len(l1)>len(l2):
    a=l1
    b=l2
else:
    a=l2 
    b=l1
for i in range(len(a)):
    if a[i] not in b:
        ans="NO" 
        break
print(ans)

Но она работает слишком долго, на 3-ем тесте не укладывается в лимит по времени. Помогите пожалуйста!!!

Ответы

▲ 2Принят

Иcпользуйте не list, а set

При применении list тоже можно побыстрее, если отсортировать, но со множествами лучше