পাইথন ( 128 137 136)
itertools.permutations
এত লম্বা নাম থাকার জন্য আপনাকে অভিশাপ !
নিষ্ঠুর বল সমাধান। আমি অবাক হয়েছি এটি সবচেয়ে কম নয়: তবে আমি অনুমান করি itertools
সমাধানটি নষ্ট হয়ে গেছে।
Ungolfed:
import itertools
initial_set=map(int, input().split())
ans=[]
for length in range(1, len(x)+1):
for subset in itertools.permutations(initial_set, length):
if sum(subset)==0:
ans+=str(sorted(subset))
print set(ans)
গল্ফযুক্ত (কুরুচিপূর্ণ আউটপুট):
from itertools import*
x=map(int,input().split())
print set(`sorted(j)`for a in range(1,len(x)+1)for j in permutations(x,a)if sum(j)==0)
গল্ফড (চমত্কার আউটপুট) (183):
from itertools import*
x=map(int,input().split())
print `set(`sorted(j)`[1:-1]for a in range(1,len(x)+1)for j in permutations(x,a)if sum(j)==0)`[5:-2].replace("'","\n").replace(",","")
import itertools as i
: ইটারটুলস মডিউলটি আমদানি করে এটিকে কল করে i
x=map(int,input().split())
: ফাঁকা স্থান দ্বারা ইনপুট পৃথক করে, তারপরে ফলাফলের তালিকাগুলি আইটেমগুলিকে পূর্ণসংখ্যায় পরিণত করে ( 2 3 -5
-> [2, 3, -5]
)
সেট ( sorted(j)
সীমার মধ্যে একটি জন্য (1, LEN (i.permutations মধ্যে x) এর +1 টি) ঞ জন্য (এক্স, ক) যদি যোগফল (ঞ) == 0):
রিটার্নস একটি সমস্ত সাব-সেট নির্বাচন তালিকা x
, সাজানো, যেখানে সমষ্টি 0 হয় এবং তারপরে কেবল অনন্য আইটেমগুলি পাওয়া যায়
( set(...)
)
আশেপাশের কবরগুলি (`) sorted(j)
পাইথন শর্টহ্যান্ডের জন্য repr(sorted(j))
। এটি এখানে থাকার কারণটি কারণ পাইথনের সেটগুলি তালিকাগুলি পরিচালনা করতে পারে না, তাই পরবর্তী সেরা জিনিসটি পাঠ্য হিসাবে একটি তালিকা সহ স্ট্রিংগুলি ব্যবহার করা উচিত।
3 3 -3 -3
?