نواحی سرویس‌دهی


  • محدودیت زمان: ۱ ثانیه
  • محدودیت حافظه: ۶۴ مگابایت

هر یک از فروشگاه‌ها در دیجی‌کالاجت حوزه سرویس‌دهی محدودی دارند. در این سوال به شما حالت ساده‌ای از نواحی سرویس‌دهی تعدادی از فروشگاه‌های دیجیکالا جت به صورت دو عدد طبیعی startstart و endend داده می‌شود؛ به این معنا که تمام نواحی بین این دو عدد تحت پوشش آن فروشگاه است؛ دقت کنید که هر ناحیه با یک عدد طبیعی مشخص می‌شود. از طرف دیگر دو ناحیه آغازین و پایانی نیز به شما داده می‌شود. شما میبایست اگر تمامی نواحی از ناحیه آغازین تا ناحیه پایانی تحت پوشش حداقل یکی از فروشگاه‌های داده شده باشد، مقدار true و در غیر اینصورت مقدار false را بازگردانید. (به کوچک و بزرگ بودن حروف توجه کنید!)

یک ناحیه xx توسط یک فروشگاه، سرویس‌دهی می‌شود اگر startixendistart_i \leq x \leq end_i باشد.

ورودی🔗

در خط اول ورودی، عدد طبیعی nn به عنوان تعداد فروشگاه‌ها داده می‌شود. 1n501 \leq n \leq 50

در nn خط بعدی، در هر خط دو عدد صحیح که با یک فاصله از هم جدا شده‌اند که نشان‌دهنده‌ی شروع ناحیه تحت پوشش و پایان ناحیه تحت پوشش هر فروشگاه است، داده می‌شود.

1startiendi501 \leq start_i \leq end_i \leq 50

در خط آخر دو، در هر سطر یک عدد صحیح آمده است که به ترتیب نشان‌دهنده‌ی ناحیه آغازین و ناحیه پایانی است، داده می‌شود.

1Initial areafinal area501 \leq Initial \ area \leq final \ area \leq 50

خروجی🔗

تنها خط خروجی باید شامل عبارت true یا false باشد که نشان‌دهنده آن است که آیا تمامی نواحی از ناحیه آغازین تا ناحیه پایانی تحت پوشش حداقل یکی از فروشگاه‌های داده شده هستند یا نه.

مثال‌ها🔗

ورودی نمونه ۱🔗

3
1 2
3 4
5 6
2
5
Plain text

خروجی نمونه ۱🔗

true
Plain text

تمامی نواحی بین ۲ تا ۵ پوشش داده می‌شوند.

  • ناحیه ۲ توسط فروشگاه اول پوشش داده می‌شود.
  • ناحیه ۳ و ۴ توسط فروشگاه دوم پوشش داده می‌شوند.
  • ناحیه ۵ توسط فروشگاه سوم پوشش داده می‌شود.

ورودی نمونه ۲🔗

2
1 10
10 20
21
21
Plain text

خروجی نمونه ۲🔗

false
Plain text

ناحیه ۲۱ توسط هیچکدام از فروشگاه‌ها پوشش داده نمی‌شود.

پروموشن نوروز


  • محدودیت زمان: ۱ ثانیه
  • محدودیت حافظه: ۶۴ مگابایت

دیجیکالا در پروموشن نوروز خودش یک تخفیف ویژه برای برنامه‌نویسان در نظر گرفته است. کاربران با وارد شدن به صفحه‌ی این پروموشن، لیستی از کالاها و تخفیف‌های عمومی را می‌بینند، اما دیجیکالا اعلام کرده است که هرکسی که بتواند به ازای هر سریالی که در این لیست هست، کوچیکترین سریال بزرگتر با کاراکترهای همون سریال را پیدا کند، می‌تواند یک تخفیف ۹۰٪ی روی تمام محصولات بگیرد. سریال‌های کالاهای دیجی‌کالا رشته‌هایی از حروف انگلیسی a-z (همه‌ی حروف کوچک) هستند و برای مقایسه‌ی کوچیکتر/بزرگتر آن‌ها از ترتیب حروف الفبا استفاده می‌شود. برای مثال کلمه‌ی baba از کلمه‌ی abab بزرگ‌تر است و کلمه‌ی zaszas از کلمه‌ی zsazsa کوچک‌تر است.

ورودی🔗

در خط اول ورودی nn که تعداد سریال‌های پروموشون هست و در nn خط بعدی در هر خط ww به عنوان یک سریال داده می‌شوند.

1n10001 \leq n \leq 1000 1length(w)1001 \leq length(w) \leq 100

خروجی🔗

خروجی شامل nn خط است که در هر خط در صورتی که رشته‌ی مورد نظر وجود دارد، رشته‌ و در غیر این صورت عبارت ‍‍no answer چاپ می‌شود.

مثال🔗

ورودی نمونه🔗

4
acs
lgeuvf
dqwrmse
zwsked
Plain text

خروجی نمونه🔗

asc
lgevfu
dqwrsem
no answer
Plain text

در این نمونه، ترکیب بعد از acs برابر asc است. تنها با جابجایی همین دو حرف کلمه‌ی بعدی تشکیل می‌شود. در کلمه‌ی lgeuvf تنها با تبدیل uvf به vfu، رشته‌ی بعدی به دست می‌آید. در کلمه‌ی zwsked، چون حروف به صورت کامل‍ا نزولی مرتب شده‌اند، ترکیب کلمات در بزرگ‌ترین حالت خود قرار دارد.

مرکز سورتینگ دیجی‌کالا


  • محدودیت زمان: ۱ ثانیه
  • محدودیت حافظه: ۶۴ مگابایت

مرکز سورتینگ دیجیکالا دارای مجموعه‌ای از نقاله‌ها برای سورت اتوماتیک بسته‌ها است. هر کدام از این نقاله‌ها از تعدادی استوانه‌ی چرخنده یا رولر مجاور هم تشکیل شده‌اند به نحوی که هر رولر می‌تواند یک بسته را به رولرهای سمت راست، چپ، جلو و عقب خود منتقل کند. توجه داشته باشید که ممکن است یک نقاله شامل یک تک رولر باشد. هر نقاله یک نقطه‌ی شروع و یک نقطه‌ی پایان دارد. هر دو رولر که از یک سمت با هم مجاور باشند، عضو یک نقاله هستند.

برای کنترل آلودگی صوتی مرکز سورتینگ تصمیم گرفته شد هر نقاله توسط یک و فقط یک کیوسک عایق صدا احاطه شود.

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

شکل زیر نمای بالا از یکی از مراکز سورتینگ دیجی‌کالا است. خانه‌های آبی رنگ نشان‌دهنده‌ی رولرهای نقاله‌ها و خط‌های قرمز نشان‌دهنده‌ی محیط کیوسک‌های قرار گرفته در اطراف هر نقاله است.

توضیح تصویر

الگوریتمی طراحی کنید که با داشتن محل رولرها، مساحت بزرگترین کیوسک لازم را محاسبه کند.

ورودی🔗

در خط اول طول nn و عرض mm مرکز سورتینگ و kk تعداد نقاله‌ها داده می‌شوند. 1m,n5001 \leq m, n \leq 500

در kk خط بعدی هر خط rr شماره‌ی ردیف در سورتینگ سنتر و c1c_1 شماره‌ی ستون آغاز و c2c_2 شماره‌ی ستون پایان یک بخش از نقاله داده می‌شوند.

خروجی🔗

مساحت بزرگترین کیوسک

ورودی نمونه ۱🔗

6 6 7
1 2 4
2 2 3
2 6 6
3 5 5
4 2 2
5 4 6
6 1 4
Plain text

خروجی نمونه ۱🔗

12
Plain text

در این نمونه، ورودی و خروجی کاملا مطابق با تصویر صورت سوال است. همانطور که در تصویر مشخص است، بزرگ‌ترین مساحت کیوسک برابر ۱۲ است.

ورودی نمونه ۲🔗

4 4 4
1 1 2
2 2 3
3 3 3
4 1 1
Plain text

خروجی نمونه ۲🔗

9
Plain text

این نمونه مطابق با تصویر زیر است: توضیح تصویر

سیستم حمل‌ونقل


  • محدودیت زمان: ۰٫۵ ثانیه
  • محدودیت حافظه: ۶۴ مگابایت

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

در فرایند ارسال مرسوله‌ها از مرکز پردازش به مرکز توزیع به هر راننده تعدادی مرسوله واگذار می‌شود که وظیفه‌ی تحویل این مرسوله‌ها را دارد. هر مرسوله وزن مشخصی دارد و باید به مرکز توزیع مشخصی فرستاده شود. این دو مقدار را با متغیر های weight\mathrm {weight} و deliveryCenter\mathrm{delivery Center} مشخص می‌کنیم.

وسایل نقلیه راننده‌ها دو محدودیت حداکثر تعداد مرسوله قابل حمل و حداکثر وزن قابل حمل را دارد. این دو محدودیت را با متغیر‌های maxPackages\mathrm{max Packages} و maxWeight\mathrm{max Weight} مشخص می‌کنیم.

مرسوله‌ها به تریتب تاریخ تحویل به مشتری، به راننده تحویل داده می‌شوند و راننده نیز باید به همان ترتیب بسته‌ها را به مراکز توزیع تحویل دهد. راننده نمی‌تواند ترتیب مرسوله‌ها را به هم زده و به ترتیب دلخواه مرسوله‌ها را تحویل دهد.

فرآیند تحویل مرسوله‌ها به این صورت است که راننده پس از اتخاب تعدادی مرسوله، از مرکز پردازش حرکت کرده و به ترتیب مرسوله‌ها به مراکز توزیع مراجعه کرده و مرسوله‌ها را تحویل می‌دهد. پس از اتمام مرسوله‌های در دست به مرکز پردازش بازمی‌گردد و تعداد دیگری از مرسوله‌ها را انتخاب می‌کند. این فرآیند تا زمانی که هیچ مرسوله‌ای باقی نماند ادامه پیدا می‌کند. پس از اتمام تمامی مرسوله‌ها راننده به مرکز پردازش باز می‌گردد.

حال وظیفه حسنی برنامه ریزی کردن حمل و نقل راننده‌ها جهت حداقل کردن تعداد سفر‌های راننده است. به حسنی کمک کنید که با داشتن مرسوله‌های مربوط به یک راننده، تعداد حداقل سفر‌های لازم راننده را حساب کرده و به اون نشان دهد.

ورودی🔗

در خط اول ۴ عدد صحیح mm، nn، maxPackages\mathrm{max Packages} و maxWeight\mathrm{maxWeight} داده می‌شود که به ترتیب نمایانگر تعداد مراکز توزیع، تعداد مرسوله‌ها، حداکثر ظرفیت تعدادی و حداکثر ظرفیت حجمی راننده است. 1n,m10 0001 \leq n, m \leq 10 \ 000 1maxPackagesm1 \leq max Packages \leq m 1maxWeight100 0001 \leq max Weight \leq 100 \ 000

در nn خط بعدی دو عدد صحیح deliveryCenter\mathrm{delivery Center}​ و weight\mathrm{weight} داده می‌شود که به ترتیب نشان دهنده شماره مرکز توزیع و وزن مرسوله است.

1weightmaxWeight 1 \leq weight \leq max Weight 1deliveryCenterm 1 \leq delivery Center \leq m

خروجی🔗

در خروجی حداقل تعداد سفر لازم برای رساندن تمامی مرسوله‌ها را چاپ کنید.

مثال‌ها🔗

نمونه ورودی ۱🔗

2 3 3 4
1 1
2 1
1 1
Plain text

نمونه خروجی ۱🔗

4
Plain text

حداقل تعداد سفر‌های لازم به این گونه است که راننده تمامی مرسوله‌ها را برداشته و به مرکز توزیع اول می‌رود (سفر اول) و مرسوله اول را تحویل می‌دهد. سپس به مرکز توزیع دوم رفته (سفر دوم) و مرسوله دوم را تحویل می‌دهد. در انتها نیز به مرکز توزیع اول بازگشته (سفر سوم) و مرسوله سوم را تحویل داده و به مرکز توزیع باز می‌گردد (سفر چهارم).

نمونه ورودی ۲🔗

3 5 3 6
1 2
3 3
3 1
3 1
2 4
Plain text

نمونه خروجی ۲🔗

6
Plain text

حداقل تعداد سفر‌های لازم به این گونه است که راننده اولین مرسوله را برداشته، به مرکز توزیع اول تحویل داده و به مرکز پردازش بازمی‌گردد (۲ سفر). سپس مرسوله دو،‌ سه و چهار را برداشته و به مرکز توزیع سوم برده و پس از تحویل مرسوله ها بازمی‌گردد (۲ سفر). در نهایت مرسوله پنجم را برداشته و به مرکز توزیع شماره دو رفته و پس از تحویل مرسوله باز می‌گردد (۲ سفر).

نمونه ورودی ۳🔗

3 6 6 7
1 4
1 2
2 1
2 1
3 2
3 4
Plain text

نمونه خروجی ۳🔗

6
Plain text

حداقل تعداد سفر‌های لازم به این گونه است که راننده مرسوله اول و دوم را برمی‌دارد و به مرکز توزیع شماره ۱ می‌رود و پس از تحویل مرسوله‌ها به مرکز پردازش باز می‌گردد (۲ سفر). سپس مرسوله‌های سوم و چهارم را برمی‌دارد و به مرکز توزیع شماره ۲ می‌رود و پس از تحویل مرسوله به مرکز پردازش باز می گردد (۲ سفر). در نهایت مرسوله پنجم و ششم را برمی‌دارد و به مرکز توزیع شماره ۳ رفته و پس از تحویل مرسوله‌ها به مرکز پردازش باز می‌گردد (۲ سفر).

کمپین مارکتینگ


  • محدودیت زمان: ۱ ثانیه
  • محدودیت حافظه: ۶۴ مگابایت

تیم مارکتینگ دیجی‌کال‍ا می‌خواهد در روز یلدا کمپینی را برگزار کند که در آن 2n2n آیتم را برای فروش ویژه قرار بدهد و به nn نفر اولی که از این آیتم‌ها خریداری کنند علاوه بر آیتمی که خریده‌اند، یک آیتم هدیه نیز تحویل بدهد. آیتم ها از 11 تا 2n2n شماره‌گذاری شده‌اند و هر شخص فقط می‌تواند یک کال‍ا را از این لیست برای خود بخرد.

شما شخصی هستید که قرار است یک لیست از nn آیتم خریداری شده تحویل بگیرید و nn جفت‌آیتم تحویل دهید به طوری که به هر شخص خریدار آیتمی که سفارش داده به علاوه یک آیتم هدیه تعلق گیرد.

حال دوستان شما چالشی برای شما مطرح می‌کنند که برای فهم آن ابتدا نیاز به یک تعریف دارید.

عدد خاص را اینگونه تعریف می‌کنیم:‌ تعداد جفت‌آیتم‌هایی که در آن‌ها شماره‌ی آیتم کاربر کم‌تر از شماره‌ی آیتم هدیه باشد. حال چالش شما این است که بعد از گرفتن لیست nn آیتم خریداری‌شده بگویید چند عدد خاص مختلف می‌توانید بسازید.

ورودی‌🔗

خط اول شامل عدد cc است که تعداد کمپین‌ها را نشان می‌دهد. 1c10001 \leq c \leq 1000

خط اول هر کمپین عدد nn به عنوان تعداد سفارشات در کمپین به شما داده می‌شود.

1n200 0001 \leq n \leq 200 \ 000

خط دوم هر کمپین nn عدد مرتب‌شده از کوچک به بزرگ داده می‌شود. لازم به ذکر است جمع تمامی nnها از 200 000200 \ 000 بیشتر نمی‌شود.

خروجی‌🔗

برای هر کمپین «تعداد» اعداد خاصی که می‌توانید بسازید را چاپ کنید.

مثال‌ها🔗

ورودی نمونه🔗

3
1
1
5
1 4 5 9 10
2
3 4
Plain text

خروجی نمونه🔗

1
3
1
Plain text

در کمپین نخست این مثال، جمعا دو کالا موجود داریم (چون تعداد کالاها برابر 2n2n است). بنابراین تنها یک راه وجود دارد، آن هم اینکه به تنها کاربری که خرید کرده است، کالای شماره‌ی ۲ هدیه داده شود.

در کمپین دوم، سه حالت وجود دارد. عدد خاص برابر با ۲ باشد (برای مثال به ترتیب کالاهای ۲ و ۳ و ۶ و ۷ و ۸ به خریداران هدیه داده شوند)؛ یا می‌تواند برابر با ۳ باشد (به ترتیب کالاهای ۲ و ۶ و ۷ و ۳ و ۸ هدیه داده شوند)؛ یا می‌تواند برابر ۱ باشد (به ترتیب کالاهای ۸ و ۲ و ۳ و ۶ و ۷ هدیه داده شوند).

در کمپین سوم این مثال، در هر حال در هر جفت‌آیتمی که ایجاد کنیم شماره‌ی هدیه کم‌تر از شماره‌ی کالای خریداری‌شده است، بنابراین تنها عدد ۰ را داریم.

رقابت سالم


  • محدودیت زمان: ۱ ثانیه
  • محدودیت حافظه: ۶۴ مگابایت

اخیرا بین ۳ تیم مختلف هوش مصنوعی، هوش تجاری و مهندسی در دیجی‌کالا رقابتی شکل گرفته تا بفهمند کدام تیم در کار با اعداد سریعتر است. نحوه ی رقابت به این صورت است که یک جدول بزرگ که شامل اعداد زیادی است را در نظر می‌گیریم و تمام اعداد آن جدول را با هم جمع می‌کنند و عددی به دست می‌آورند که می‌تواند بسیار بزرگ باشد و آن را nn می‌نامیم. مرحله‌ی بعد این رقابت این است که از nn زیررشته‌ای متوالی را حذف می‌کنیم و به عددی جدید می‌رسیم. (عدد جدید میتواند با تعدادی صفر شروع شود) همچنین اگر تمام ارقام را حذف کنید عدد باقی مانده صفر میشود.

حال چالش این است که جمع تمامی اعداد بدست آمده بعد از یک مرحله حذف کردن ارقام را بیابید. از آنجا که این عدد ممکن است خیلی بزرگ شود باقی مانده آن به 109+710^9+7 را بیابید. عجله کنید و به تیم خود در برنده شدن کمک کنید!

ورودی🔗

در تنها خط ورودی عدد nn به شما داده می‌شود.

1n101051 \leq n \leq 10^{10^5}

خروجی‌🔗

در تنها خط خروجی باقی‌مانده‌ی مجموع خواسته‌شده را به 109+710^9+7 چاپ کنید.

مثال‌ها🔗

ورودی نمونه ۱🔗

204
Plain text

خروجی نمونه ۱🔗

54
Plain text

در این مثال هربار یکی از زیررشته‌های ۲، ۲۰، ۰، ۰۴، ۴ حذف می‌شوند و هربار عددی را که باقی می‌ماند جمع می‌کنیم.

ورودی نمونه ۲🔗

100500100500
Plain text

خروجی نمونه ۲🔗

428101984
Plain text

جابه‌جایی میان انبارها


  • محدودیت زمان: ۱ ثانیه
  • محدودیت حافظه: ۵۱۲ مگابایت

دیجی‌کالا انبارهای متفاوتی دارد و از طرفی خود فروشندگان هم می‌توانند انبارهای خود را داشته باشند،‌ اما یک انبار اصلی وجود دارد که به آن انبار دانش می‌گوییم. میان برخی از این انبارها جاده‌هایی وجود دارد که هزینه‌ی عبور از این جاده‌ها مشخص است. دیجی‌کالا برای جابه‌جایی کالاها میان انبارها با شرکتی به نام «ترانزیت برادران سلطانلو به جز سلطان کوچیکه» قرارداد بسته و آن‌ها به ازای هر جابه‌جایی هزینه‌ای از دیجی‌کالا دریافت می‌کنند. اما این شرکت قانون عجیبی برای جابه‌جایی دارد. این قانون از این قرار است که در هر حرکت باید از ۲ جاده عبور کرد مثلا برای جابه‌جایی از انبار ii به انبار kk، ابتدا باید از انبار ii به انبار jj و سپس از انبار jj به انبار kk حرکت کرد و در نهایت هزینه‌‌ای که بابت این مسیر، دریافت می‌کند برابر مربع مجموع هزینه‌ی هرکدام از مسیرهاست، یا به عبارتی:

(cost(i,j)+cost(j,k))2{(cost(i,j) + cost(j,k))}^2

طبق این تعریف، ممکن است بین دو انبار هیچ مسیری وجود نداشته باشد! چون هر مسیر شامل تعدادی حرکت است (که هر حرکت دقیقا شامل ۲ جاده است) و مجموع هزینه‌ی این حرکت‌ها برابر است با هزینه‌ای که شرکت باید به برادران سلطانلو بپردازد.

حال از شما خواسته می‌شود که کم‌ترین هزینه‌ی جابه‌جایی از انبار اصلی دانش(انبار ۱) به باقی انبارها را بیابید. توجه داشته باشید که ممکن است نتوانید مسیری میان انبار اصلی و برخی از انبارها بیابید. در آن صورت این هزینه را ۱- برگردانید.

ورودی🔗

در خط اول ۲ عدد nn و mm آمده است که به ترتیب تعداد انبارها و تعداد راه‌هاست. میان هر ۲ انبار حداکثر یک راه داریم و انباری به خودش راهی ندارد. 2n100 0002 \leq n \leq 100 \ 000 1m200 0001 \leq m \leq 200 \ 000 در mm خط بعدی در هر خط به ترتیب سه عدد uu و vv و ww آمده که نشان دهنده‌ی راهی دوطرفه بین uu و vv است که هزینه‌ی آن ww است. 1w501 \leq w \leq 50 1uvn1 \leq u \neq v \leq n تضمین می‌شود هر راه حداکثر یکبار ورودی داده می‌شود.

خروجی🔗

در تنها خط خروجی به ازای انبار ii اگر مسیری درست برای جابه‌جایی (با توجه به شروط گفته شده) از انبار یک به انبار ii وجود نداشت عدد ۱- و اگر وجود داشت کم ترین هزینه‌ی ممکن برای جابه‌جایی از انبار ۱ به انبار ii را چاپ کنید. دقت کنید فاصله‌ی هر انبار از خودش برابر صفر میباشد.

مثال‌ها🔗

نمونه ورودی ۱🔗

3 2
1 2 4
2 3 2
Plain text

نمونه خروجی ۱🔗

0 -1 36
Plain text

در این مثال، مسیری درست برای رسیدن از ۱ به ۲ وجود ندارد و عدد ۱- برمی‌گردد. برای رسیدن از انبار ۱ به انبار ۳ کافیست جاده‌های انبار ۱ به انبار ۲ و انبار ۲ به انبار ۳ طی شوند و جمع هزینه آن‌ها برابر مربع مجموع ۴ و ۲ یعنی ۳۶ است.

نمونه ورودی ۲🔗

4 4
1 2 2
2 3 3
3 4 6
2 4 5
Plain text

نمونه خروجی ۲🔗

0 130 25 49
Plain text

استخراج - دیتابیس


کد شما باید روی نسخه‌ی استاندارد MySQL قابل اجرا باشد.


جدولی با نام orders برای نگه‌داری اطلاعات سفارش‌ها موجود است که ساختار آن به‌شرح زیر است:

نام نوع تعریف ملاحضات
id int شناسه‌ی سفارش primary key
customer_id int شناسه‌ی مشتری foreign key customers
status enum وضعیت سفارش که یکی از حالات در انتظار پرداخت، در انبار، کنسل‌شده و تحویل‌داده‌شده است یکی از مقادیر wait_payment، warehouse، canceled و sent می‌باشد
created_at date تاریخ ثبت سفارش

همچنین جدولی با نام customers برای نگه‌داری اطلاعات کاربران با ساختار زیر داریم:

نام نوع تعریف ملاحظات
id int شناسه‌ی مشتری primary key
name varchar نام مشتری
is_blocked bool آیا فعالیت مشتری در سایت ممنوع شده است؟ Nullable، مقدار ۱ برای مشتری‌های بلاک‌شده است و مقدار صفر یا null برای مشتری عادی است

مطلوبات🔗

کوئری‌های SQL خواسته‌شده از شما موارد زیر است (هر کوئری نمره‌ای جداگانه دارد و اگر کوئری یک قسمت را نتوانستید بزنید، کوئری‌هایی که حل کردید را بفرستید و قسمت آن کوئری را خالی بگذارید):


بخش ۱) کوئری‌ای بنویسید که لیست تمامی سفارشاتی که در انبار هستند را برگرداند. خروجی باید شامل یک جدول با یک ستون order_id باشد که به‌ترتیب شناسه‌ی سفارش و به‌صورت نزولی مرتب شده‌اند.


بخش ۲) کوئری‌ای بنویسید که شناسه و نام تمامی مشتریانی که تا به حال سفارشی ثبت نکرده‌اند را برگرداند. خروجی باید شامل دو ستون با نام‌های customer_id و customer_name باشد که به‌ترتیبِ نام مشتری و به‌صورت صعودی مرتب شده‌اند.


بخش ۳) نرخ سفارشات کنسل‌شده برابر است با تعداد تمامی سفارشات کنسل‌شده برای مشتریان عادی (بلاک‌نشده) تقسیم بر تعداد سفارشات برای مشتریان عادی. کوئری‌ای بنویسید که نرخ کنسل شدن را در هر روز تا دو رقم اعشار محاسبه کند. خروجی باید شامل یک جدول با دو ستون با نام‌های date و cancellation_rate باشد. توجه کنید که در جدول خروجی تنها باید شامل تاریخ‌هایی که در آن‌ها سفارش ثبت شده است باشد. برای نمایش نرخ سفارشات باید عدد محاسبه‌شده را در ۱۰۰ ضرب کرده و با استفاده از تابع format تا دو رقم اعشار آن را گرد کنید تا به‌صورت درصد قابل نمایش باشد.


آن‌چه باید آپلود کنید🔗

کد خود را در قالب زیر، در یک فایل با نام code.sql قرار دهید و آن را ارسال کنید:

-- Section1
    your first query here
-- Section2
    your second query here
-- Section3
    your third query here
SQL