من رفتم سربازی اگر محتوای منو دوست داشتید و بدردتون خورد از من حمایت مالی کنید

حل تمرین جاسوسی کوئرا با پایتون

حل تمرین جاسوسی کوئرا با پایتون
حل تمرین جاسوسی کوئرا با پایتون

حل تمرین جاسوسی کوئرا با پایتون

در این نوشته به روش حل یکی از سوالات برنامه نویسی وب‌سایت کوئرا می‌پردازیم.

 

حل تمرین جاسوسی کوئرا با پایتون

عمو که فردی بسیار پول پرست است، به جاسوسی چند‌جانبه روی آورده. عمو در n سازمان جاسوسی مختلف عضو است. هر سازمان با دریافت اطلاعات سرّی راجع به سازمانی دیگر، به عمو پول می‌دهد. عمو نمی‌تواند یک اطلاعات را به دو سازمان جاسوسی بفروشد، وگرنه این اطلاعات ارزشی نخواهد داشت. در هریک از q روز گذشته، یک ایمیل حاوی اطلاعات سرّی از فردی ناشناس به دست عمو رسیده است. اگر عمو اطلاعات دو روز پشت سر هم را به دو سازمان مختلف بفروشد، مجبور است از سازمان اول به سازمان دوم برود. می‌دانیم که عمو طوری این اطلاعات را فروخته که کمترین تعداد جابجایی بین سازمان‌ها را داشته، با دانستن این‌که هریک از اطلاعات ایمیل‌ها مربوط به کدامین سازمان جاسوسی است، بگویید که کمترین تعداد جابجاشدن عمو بین سازمان‌های جاسوسی چقدر است.

 

ورودی

سطر اول ورودی شامل عدد n است که نمایانگر تعداد سازمان‌های جاسوسی عمو است. سپس در هریک از n سطر بعدی نام یکی از این سازمان‌ها آمده است. نام هر سازمان با دیگری متفاوت است. هر نام می‌تواند شامل چند کلمه شود که هریک از حروف کوچک یا بزرگ انگلیسی و اعداد تشکیل شده‌اند. سطر بعدی ورودی شامل عدد q است که نمایانگر تعداد ایمیل‌های رسیده به دست عمو است. در iمین سطر از q سطر بعدی نام سازمانی آمده است که اطلاعات ایمیل م مربوط به آن است.

ورودی در تمرین جاسوسی

 

خروجی

در تنها سطر خروجی یک عدد چاپ کنید که برابر کمترین تعداد جابجا شدن عمو بین سازمان‌های جاسوسی است.

 

مثال

ورودی نمونه 1

3
KGB
Central Intelligence Agency
Central Intelligence Agency 2
6
KGB
Central Intelligence Agency
Central Intelligence Agency
Central Intelligence Agency 2
Central Intelligence Agency 2
KGB

 

خروجی نمونه 1

1

عمو می‌تواند اطلاعات 3 روز اول را به Central Intelligence Agency 2 بفروشد و سپس به Central Intelligence Agency رفته و اطلاعات 3 روز بعدی را به آن‌ها بدهد.

 

کد پایتون سوال تمرین جاسوسی

n = int(input())

names = list()

for i in range(n):
    names.append(input())
    
q = int(input())

info = set()

ans = 0

for i in range(q):
    temp = input()
    info.add(temp)
    
    if len(info) == n:
        ans += 1
        info.clear()
        info.add(temp)
        
        
print(ans)

 

منبع سوال: کوئرا

اگر نیاز به حل تمرین‌های دیگری از کوئرا دارید در بخش نظرات همین نوشته برای ما بنویسید.

برای امتیاز به این نوشته کلیک کنید!
[کل: 0 میانگین: 0]