Module: توالی براکت صحیح (RSP)


Problem

4 /6


تولید PSP

Theory Click to read/hide

تولید توالی براکت های صحیح مستقیماً از روش انجام بررسی پیروی می کند - فقط باید براکت های جدید را بدون نقض صحت اضافه کنیم. این کار با تکرار بازگشتی انجام می شود. اگر او را نمی شناسید - BE... آه، نه، می توانید سعی کنید با خواندن ادامه مطلب متوجه شوید. در اینجا یک نمونه کد برای یک نوع براکت وجود دارد:
 

#include <vector>
#include <iostream>

استفاده از namespace std;
int n; // نصف طول 
بردار<چار> پاسخ // پاسخ ما 

void rec(int تعادل) {
اگر (ans.size() == 2 * n) { // اگر اینطور شد، پس ما انجام شد < /span>
برای (int i = 0; i < 2 * n; i++)
cout << ans[i] << " ";
cout << "\n";
}
اگر (ans.size() + balance + 2 <= n * 2) { // بررسی کنید، ما این کار را انجام می دهیم، مهاربند باز جدید  را می بندیم
// حالا مراقب دستان خود باشید: نیازی نیست برای هر دنباله بردار جداگانه بسازیم 
ans.push_back('(');
rec (تعادل + 1)؛
ans.pop_back(); // برای درک این موضوع، باید از بازگشت آگاه باشید. ابتدا یک پرانتز به وکتور اضافه می کنیم و سپس همه این کدها را دوباره اجرا می کنیم. 
// یعنی اگر بتوانیم دوباره یک پرانتز اضافه کنیم. 
// و این اتفاق می افتد تا زمانی که ما شروع به خروج از بازگشت نکنیم - یعنی تا زمانی که به طول مورد نظر برسیم. 
// سپس براکت ها شروع به برداشتن خواهند کرد. اگر این را می فهمید - من به شما تبریک می گویم، شما عالی هستید. 
}
if (balance > 0) { // اگر بتوانیم یک براکت را ببندیم، آن را می بندیم. 
ans.push_back(')');
rec (تعادل - 1)؛
ans.pop_back();
}
}

 int main()
{
cin>> n
rec(0);

    بازگشت 0;
}
و اکنون زمان دشواری ها - شما باید خودتان الگوریتم را برای چندین نوع براکت بنویسید! موهاهاهاهاهاهاهاهاهاها!

Problem

ابتکارترین توسعه دانشمندان بریتانیایی، شرکت راهی برای یافتن راه حلی برای هر مشکلی است که با استفاده از محاسبات tilde-omega-lambda قابل حل است (یعنی برای هیچ کدام). برای انجام این کار، آنها تمام توالی های براکت ممکن را با طول x می گذرانند، جایی که x اولین رقم ثابت مخفی است که در بسیاری از پیشرفت های شرکت استفاده می شود. اگر x فرد باشد، فقط یک به آن اضافه می کنند. سپس آنها از الگوریتم های پیشرفته با استفاده از برنامه نویسی عصبی-زبانی استفاده می کنند و فیبوناچی اعداد کاتالان گوگلد را برای مکان یابی عبارات محاسبه می کند. اما این الگوریتم‌ها قبلاً پیاده‌سازی و ثبت شده‌اند. 

وظیفه شما پیاده سازی الگوریتم تکرار است. 


ورودی
ورودی اولین رقم ثابت مخفی است - x (\(1 <= x <= 9\)).  ;
 

خروجی
باید همه بازه‌های طول x (یا x+1 اگر \(x \% 2 ==1\) را خروجی بگیرید. ) به ترتیب واژگانی.

 

نمونه‌ها
<سر> <بدن>
# ورودی خروجی
1 1
( )
<[ ]
{}