গল্ফার অ্যাডভেঞ্চার
এটিই প্রথম চ্যালেঞ্জ! পরে আরও চ্যালেঞ্জ আসবে যার জন্য পূর্ববর্তী চ্যালেঞ্জ থেকে ডেটা প্রয়োজন হবে :)
অধ্যায় 1: দানি
আসুন এক মিনিট কল্পনা করুন .. আপনি একজন শক্তিশালী Godশ্বর, আপনার ক্ষমতা সীমাহীন তবে একটি জিনিস প্রয়োজন: আত্মা। প্রতিটি আত্মা এখানে একটি বাইট দ্বারা প্রতিনিধিত্ব করা হয়, আপনি ব্যবহার প্রতিটি বাইট একটি আত্মার আত্মত্যাগ করে। সুতরাং লক্ষ্যটি হ'ল কমপক্ষে আত্মার ত্যাগ করার সময় সবচেয়ে বড় পরিমাণের লোককে বাঁচানো।
আপনার প্রথম চ্যালেঞ্জটি হল একটি ছোট্ট গ্রামটিকে বাঁচানো, আপনি যদি তার চ্যালেঞ্জটি সমাধান করেন তবে শয়তান পুরো গ্রামটিকে ধ্বংস করতে রাজি নয়।
চ্যালেঞ্জ :
আপনার কাছে একটি উল্লম্ব ফুলদানি রয়েছে যাতে ঠিক 10 টি জিনিস থাকতে পারে (এয়ার অন্তর্ভুক্ত)। আপনি যদি সেই দানিটিতে কোনও জিনিস রাখেন তবে মাধ্যাকর্ষণ সেই জিনিসটিকে নীচে নেমে আসবে। যদি দানিটি ইতিমধ্যে পূর্ণ হয় (এবং আপনি যদি এটি "বায়ু পূর্ণ" হিসাবে বিবেচনা করেন তবে এটি সর্বদা পূর্ণ থাকে), ইনপুটটি ফুলদানির শীর্ষে উপাদানটি প্রতিস্থাপন করবে।
অনুমোদিত জিনিসগুলির সেটটি এখানে:
- বায়ু
0 / - একটি রক
1 / - - একটি পাতা
2 / ~ - একটি বোমা
3 / x
যদি "এ বোমা" এর উপরে কোনও শিলা বা কোনও পাতা থাকে তবে এটি বিস্ফোরিত হবে এবং তার উপরে থাকা জিনিসটি ধ্বংস করবে destroy
ইনপুট হ'ল আপনি ফুলদানিতে প্রতিবার যে জিনিস রাখবেন সেগুলির তালিকা।
উদাহরণ: 11231: আপনি 2 টি শিলা রাখবেন, তারপরে একটি পাতা, তারপরে একটি বোমা এবং শেষ পর্যন্ত একটি শেষ শিলা।
ফুলদানি স্থির থাকে, আপনি নিম্নলিখিত নিয়ম দিয়ে গণনা শুরু করতে পারেন:
- রক সংগ্রহকারীতে 1 ইউনিট যুক্ত করে
- পাতা সংগ্রহকারীকে 2 দ্বারা গুণ করে
- বোমা সংগ্রহকারী দ্বারা হ্রাস 1
- বায়ু কিছুই করে না
(আপনার ফুলদানির শীর্ষ থেকে গণনা শুরু করতে হবে)
ইনপুট হিসাবে "11231" ব্যবহার করে আমরা সিমুলেশনটি এখানে পেয়েছি:
|-| |-| |~| |x| |-| | | | | | | | | | | | |
| | |-| |-| |~| |x| |-| | | | | | | | | | |
| | | | |-| |-| |~| |x| |-| | | | | | | | |
| | | | | | |-| |-| |~| |x| |-| | | | | | |
| | | | | | | | |-| |-| |~| |x| |-| | | | |
| | | | | | | | | | |-| |-| |~| |x| |-| | |
| | | | | | | | | | | | |-| |-| |~| |x| | |
| | | | | | | | | | | | | | |-| |-| |~| |~|
| | | | | | | | | | | | | | | | |-| |-| |-|
| | | | | | | | | | | | | | | | | | |-| |-|
এবং আউটপুট 2 হবে (হিসাবে গণনা করা ((0 x 2) + 1) + 1) ফুলদানির সমস্ত রাজ্য মুদ্রণের প্রয়োজন নেই!
বেস প্রোগ্রাম (পাইথন 3)
এটি কীভাবে কাজ করে তা বুঝতে আপনি এটি সম্পাদন করতে পারেন।
def printVase(vase):
for i in vase:
if i == 1:
print("|-|")
elif i == 2:
print("|~|")
elif i == 3:
print("|x|")
else:
print("| |")
def updateVase(vase):
changed = False
for i in range(len(vase), -1, -1):
if i < len(vase) - 1:
if vase[i+1] == 3 and vase[i] in [1,2]:
vase[i], vase[i+1] = 0, 0
changed = True
if not vase[i+1] and vase[i] in [1, 2, 3]:
vase[i], vase[i+1] = vase[i+1], vase[i]
changed = True
return changed
userInput = input("Vase : ")
vase = [0 for i in range(0, 10)]
oldVase = vase
while updateVase(vase) or userInput != "":
if userInput != "":
vase[0] = int(userInput[0])
userInput = userInput[1::]
printVase(vase)
input()
accumulator = 0
for i in vase:
if i == 1:
accumulator += 1
if i == 2:
accumulator *= 2
if i == 3:
accumulator -= 1
print(accumulator)
গল্ফযুক্ত সংস্করণ (পাইথন 3, কোনও দানি প্রদর্শন নয়): 360 বাইট = 360 পয়েন্ট
def u(v):
c=0
for i in range(len(v),-1,-1):
if i<len(v)-1:
if v[i+1]==3 and v[i]in[1,2]:v[i],v[i+1],c=0,0,1
if not v[i+1]and v[i]in[1,2,3]:v[i],v[i+1],c=v[i+1],v[i],1
return c
l,v=input(),[0 for i in range(0, 10)]
while u(v)or l!="":
if l!="":v[0],l=int(l[0]),l[1::]
a=0
for i in v:
if i==1:a+=1
if i==2:a*=2
if i==3:a-=1
print(a)
আপনার প্রোগ্রামটি সঠিকভাবে কাজ করে কিনা তা পরীক্ষা করতে চাইলে আপনি এই ইনপুটটি পরীক্ষা করতে পারেন: 12122111131
সঠিক উত্তরটি হল 43 :) (ধন্যবাদ এমিগিনা)
এখন পয়েন্টগুলির জন্য:
- (x) পয়েন্টগুলি যেখানে: x হল আপনার প্রোগ্রামটি লেখার জন্য প্রয়োজনীয় বাইটের পরিমাণ। আপনি যদি পরবর্তী চ্যালেঞ্জ পোস্ট হওয়ার পরে উত্তর দেন তবে এই চ্যালেঞ্জের জন্য পয়েন্টগুলি আপনার পয়েন্টের মোট পরিমাণে যুক্ত হবে না।
লক্ষ্যটি পুরো চ্যালেঞ্জের সময় ন্যূনতম পরিমাণের পয়েন্ট রাখা হয় :) আপনি যদি চ্যালেঞ্জের কোনও একটি অংশ এড়িয়ে যান তবে আপনার বাদ দেওয়া অংশের জন্য ডিফল্টরূপে (ডাব্লুএক্স + 1) পয়েন্ট থাকবে (যেখানে ডাব্লুএক্স সবচেয়ে খারাপ স্কোর) যে চ্যালেঞ্জ জন্য)।
পরবর্তী চ্যালেঞ্জের জন্য প্রয়োজনীয় ডেটা:
আউটপুট যখন ইনপুট = 10100000200310310113030200221013111213110130332101
বর্তমান চ্যাম্পিয়ন: এমিগনা
সৌভাগ্য সবার !
333একটি দানি তৈরি করে [0, 0, 0, 0, 0, 0, 0, 3, 3, 3]এবং এর ফলে স্কোর তৈরি করে -3তবে এটি কি আপনার স্পেসিফিকেশন অনুযায়ী [0, 0, 0, 0, 0, 0, 0, 0, 0, 3]স্কোর হওয়া উচিত না -1?