سوالات چالشی هفته چهارم دومین دوره لیگ مایکد به همراه پاسخهای مورد انتظار تست کیسها جهت آشنایی بیشتر شرکتکنندگان در لیگ منتشر میگردد.
پاسخهای تیم برنده جهت افزایش جنبه آموزشی و استفاده سایر شرکتکنندگان پس از آزمون کامنت گذاری شده است.
دریافت
عنوان: محاسبه شاخص z-score ساده شده
حجم: 252 کیلوبایت
دریافت
عنوان: سوال چالشی دیدهبان
حجم: 368 کیلوبایت
توضیحات: فاصله اقلیدسی
دریافت
عنوان: سوال چالشی قضیه Zeckendorf
حجم: 195 کیلوبایت
پاسخ تیم برنده
# خواندن فایل ورودی
with open("input.txt", "r") as f:
lines = f.read().splitlines()
out_file = open("output.txt", "w")
output = []
for line in lines:
if not line.strip(): # خط خالی را نادیده بگیر
continue
# تبدیل اعداد به لیست
numbers = [int(x) for x in line.split()]
# محاسبه میانگین
mean_value = sum(numbers) / len(numbers)
# پیدا کردن اندیسهای دادههای غیرعادی
abnormal_indices = []
for i, x in enumerate(numbers):
# محاسبه فاصله از میانگین
if x >= mean_value:
distance = x - mean_value
else:
distance = mean_value - x
# محاسبه شاخص فاصله از میانگین
if mean_value != 0:
index_value = distance / mean_value
else:
index_value = 0
# بررسی غیرعادی بودن
if index_value > 1:
abnormal_indices.append(i)
# ایجاد خروجی
if not abnormal_indices:
output.append("NORMAL")
else:
output.append(" ".join(str(idx) for idx in abnormal_indices))
# نوشتن در فایل خروجی
for i in range(len(output)):
if i != len(output) - 1:
out_file.write(output[i] + "\n")
else:
out_file.write(output[i])
out_file.close()
# خواندن فایل
with open("input.txt", "r") as f:
lines = f.read().splitlines()
out_file = open("output.txt", "a")
output = []
for i in lines:
# تبدیل ورودی به عدد صحیح و اعشاری
x1,y1,x2,y2,x3,y3 = i.split(" ")
x1,y1,x2,y2,x3,y3 = float(x1),float(y1),float(x2),float(y2),float(x3),float(y3)
if int(x1) == x1:x1 = int(x1)
if int(y1) == y1:y1 = int(y1)
if int(x2) == x2:x2 = int(x2)
if int(y2) == y2:y2 = int(y2)
if int(x3) == x3:x3 = int(x3)
if int(y3) == y3:y3 = int(y3)
# محاسبه فاصله
d1 = (x2-x1)2 + (y2-y1)2
d2 = (x3-x1)2 + (y3-y1)2
if d1 < d2:
output.append(f"{x2}{y2}")
elif d2 < d1:
output.append(f"{x3}{y3}")
else: output.append(f"{x2}{y2}{x3}{y3}")
# نوشتن خروجی
for i in range(len(output)):
if i != len(output) - 1:
output[i] += "\n"
out_file.write(output[i])
out_file.close()
# خواندن فایل ورودی
with open("input.txt", "r") as f:
lines = f.read().splitlines()
out_file = open("output.txt", "w")
output = []
for line in lines:
# عدد مخفی را بخوان
secret_number = int(line.strip())
# تولید دنباله فیبوناچی تا بزرگتر از عدد مخفی
fibonacci = [1, 1]
while fibonacci[-1] <= secret_number:
fibonacci.append(fibonacci[-1] + fibonacci[-2])
# حذف اولین 1 تکراری و مرتبسازی نزولی
fibonacci = list(set(fibonacci)) # حذف تکراریها
fibonacci.sort(reverse=True)
# انتخاب اعداد متمایز و غیرمجاور
selected_numbers = []
remaining = secret_number
prev_index = -2 # برای اطمینان از غیرمجاور بودن
for i, num in enumerate(fibonacci):
if num <= remaining:
# بررسی غیرمجاور بودن با آخرین عدد انتخاب شده
current_index = fibonacci.index(num)
if not selected_numbers or abs(current_index - prev_index) > 1:
selected_numbers.append(num)
remaining -= num
prev_index = current_index
# مرتبسازی نزولی
selected_numbers.sort(reverse=True)
# ایجاد خروجی
output.append(" ".join(str(num) for num in selected_numbers))
# نوشتن در فایل خروجی
for i in range(len(output)):
if i != len(output) - 1:
out_file.write(output[i] + "\n")
else:
out_file.write(output[i])
out_file.close()
دیدگاهها
هیچ نظری هنوز ثبت نشده است.