🎯 چارچوبهای کدهای ارسالی💬 خروجی:۱. خروجی باید ثابت باشد. (تصادفی نباشد)
۲. خروجی میتواند حداکثر ۳ کاراکتر داشته باشد.
۳. هر کاراکتر خروجی باید عضو
[!*&^%$#@()~+=-?<>{}[].,,0-9|a-z|A-Z]
باشد.
🌅 ظاهر کد:۱. کدها با gcc کامپایل و اجرا خواهند شد، و فقط از کتابخانههای
stdio.h
و
iostream
میتوانید استفاده کنید.
۲. مجاز به استفاده از کلیدواژه
asm
در کدهای خود
نیستید.۳. حداکثر تعداد خط کد ۲۱ است.
۴. هر خط میتواند حداکثر ۸۷ کاراکتر داشته باشد.
۵. کد شما باید حداکثر ۴۰ کاراکتر
;
داشته باشد.
۶. مجاز به
define
کردن
;
در کد نیستید. (برای مثال کد زیر توسط کمیته داوری رد میشود.)
#define semicolon ;
int main(){
int x = 10 semicolon
}
۷. کد شما باید خوانا ولی سخت و پیچیده باشد، به این معنا که خواندن کد دشوار نباشد و تنها فهم عملکرد کد مشکل باشد. برای مثال استفاده از defineهایی که صرفا خوانش کد را سخت میکنند و متغیرهایی که نامهای آنها شبیه هم هستند (il , li و یا mnm, mmn) مجاز نیست و کد شما توسط هیئت داوری رد خواهد شد.
🔃 پیچیدگی زمانی کد:
پیچیدگی زمانی کد شما باید تقلیلپذیر به زمان ثابت (const) باشد.
🛠 چند نمونه از کدهای قابل قبول و غیر قابل قبول در ادامه اشاره شده است:
۱. پیچیدگی زمانی قابل قبول:
int main(){
int a = 0;
int n = 1000*1000;
for (int i=0; i<n;i++){
a = a+1;
}
cout<<a;
}
زیرا میتوان کد حلقه را به
a=a+n
تقلیل داد که در زمان ثابت قابل محاسبه است.
۲. پیچیدگی زمانی غیرقابل قبول:
int main(){
int a = 1;
int n = 1000*1000;
for (int i=0;i<n;i++){
a=a*i;
}
cout<<a;
}
۳. پیچیدگی زمانی قابل قبول:
int main(){
int a = 0;
int n = 1000*1000;
for (int i=0;i<n;i++){
a=a*i;
}
cout<<a;
}
زیرا با اینکه حلقه باید
n
بار تکرار شود ولی از آنجایی که
a=0
است، نیازی به اجرای حلقه نیست و میتوان خروجی را در زمان ثابت محاسبه کرد.
📹 کدهای شما با کامپایلر
x86-64 gcc 11.4
کامپایل میشود.
برای اطمینان از خروجی تولید شده توسط کد خود میتوانید از سایت
godbolt استفاده کنید و کامپایلر را
x86-64 gcc 11.4
ست کنید.
⏳ ما را دنبال کنید…
📱 She'r ta Code |
📩 Support |
📎 Website