سوالات هفته سوم لیگ مای‌کد به همراه پاسخ

سوالات هفته سوم لیگ مای‌کد به همراه پاسخ

سوالات چالشی هفته سوم لیگ مای‌کد به همراه پاسخ‌های مورد انتظار تست کیس‌ها جهت آشنایی بیشتر شرکت‌کنندگان در لیگ منتشر می‌گردد.

دریافت
عنوان: ماشین زمان
حجم: 206 کیلوبایت
توضیحات: سوال چالشی ماشین زمان با استفاده از اعداد چرخشی

پاسخ تیم برنده


دریافت
عنوان: جوراب جادویی
حجم: 231 کیلوبایت
توضیحات: سوال چالشی جوراب جادویی جادوگر مبتنی بر جستجو
پاسخ تیم برنده 


دریافت
عنوان: ساندویچ فروشی اسرار آمیز
حجم: 239 کیلوبایت
توضیحات: سوال چالشی مواد اولیه ساندویچ مبتنی بر عوامل اول

پاسخ تیم برنده


تابع اصلی مرتبط با سوال اول

ll findDay(const string& s) {
    string n1, m1;
    bool isb = false;

    // جدا کردن دو عدد از رشته ورودی که با کاما جدا شده‌اند
    for (int i = 0; i < s.size(); ++i) {
        if (s[i] == ',') {
            isb = true;
            continue;
        }
        if (!isb) n1 += s[i]; // بخش اول (n)
        else m1 += s[i];      // بخش دوم (m)
    }

    ll n = stoll(n1), m = stoll(m1);

    // انجام محاسبات بر اساس مقدار m
    if (m >= 0) {
        return (n + (abs(m) % 7)) % 7;
    } else {
        return (n - (abs(m) % 7) + 7) % 7;
    }
}

تابع اصلی مرتبط با سوال دوم

// تابع برای پردازش هر خط ورودی و انجام محاسبات
ll countSteps(const string& s) {
    ll sum = 0;

    // شمارش کاراکترهای معتبر (غیر از '[', ']' و ',')
    for (int i = 0; i < s.size(); ++i) {
        if (s[i] == ',' || s[i] == '[' || s[i] == ']') continue;
        sum++;
    }

    ll ans = 0;
    // محاسبه تعداد مراحل کاهش sum تا رسیدن به 1
    while (sum != 1) {
        sum /= 2; // نصف کردن آرایه
        ans++;
    }

    return ans;
}

تابع اصلی مرتبط با سوال سوم

string countIngredients(ll n) {
    ll pr[10] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29}; // لیست اعداد اول
    str st = "NSMCVPOTFL"; // کاراکترهای متناظر با هر عدد اول
    ll count[10] = {0}; // آرایه برای ذخیره تعداد هر عامل اول
    ll in = 0;

    // تجزیه عدد n به عوامل اولیه
    while (n > 1) {
        ll cnt = 0;
        while (n % pr[in] == 0) {
            cnt++;
            n /= pr[in];
        }
        count[in] = cnt; // ذخیره تعداد عامل اول
        in++;
    }

    // ساخت رشته خروجی بر اساس عوامل اولیه
    string result;
    loop(i, 0, 10) {
        if (count[i]) {
            result += to_string(count[i]) + st[i];
        }
    }
    return result;
}


۰ ۰ ۰ دیدگاه

دیدگاه‌ها

هیچ نظری هنوز ثبت نشده است.
ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی

لیگ دانش‌آموزی ACM - مای‌کُد

این لیگ در طول سالی تحصیلی و از آذر‌ماه تا فروردین‌ماه سال بعد به صورت ترکیبی برخط/حضوری برگزار خواهد شد.

دسته‌بندی
آخرین مطلب
پیوندها
بایگانی