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

منظور از یک «جایشگت» از اعداد 11 تا nn یعنی دنباله‌ای به طول nn مثل p1,p2,,pn,p_1, p_2, \dots, p_n , که هر کدام از اعداد 11 تا nn دقیقا یکبار در آن ظاهر شده است.

به یک دنباله مثل a1,a2,,an,a_1, a_2, \dots, a_n , «صعودی» می‌گوییم هرگاه برای هر ii که 1in1,1 \leq i \leq n - 1, داریم ai<ai+1,a_i < a_{i + 1} ,.

توضیح تصویر

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

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

کد پایتون

n = int(input())
arr = list(map(int, input().split()))

for i in range(n):
    for j in range(i, n - 1):
        if arr[j] > arr[j + 1]:
            arr[j], arr[j + 1] = arr[j + 1], arr[j]

print(*arr)
Python

کد سی‌پلاس‌پلاس

#include <iostream>

using namespace std;

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

    int arr[n];
    for (int i = 0; i < n; i++)
        cin >> arr[i];

    for (int i = 0; i < n; i++)
        for (int j = i; j + 1 < n; j++)
	    if (arr[j] > arr[j + 1])
                swap(arr[j], arr[j + 1]);

    for (int i = 0; i < n; i++)
    {
        cout << arr[i];
        
        if (i == n - 1)
            cout << '\n';
        else
            cout << ' ';
    }

    return 0;
}
C++

کد جاوا

import java.util.Scanner;

public class Main {
	
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();

        int[] arr = new int[n];
        for (int i = 0; i < n; i++)
            arr[i] = sc.nextInt();

        for (int i = 0; i < n; i++)
            for (int j = i; j + 1 < n; j++)
                if (arr[j] > arr[j + 1]) {
                    int tmp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = tmp;
                }

        for (int i = 0; i < n; i++) {
            System.out.print(arr[i]);
            if (i == n - 1)
                System.out.println();
            else
                System.out.print(' ');
        }
    }
}
Java

با دریافت عدد nn جایگشتی از 11 تا nn را چاپ کنید که این برنامه به ازای این جایگشت خروجی نادرست می‌دهد.

ورودی

در تنها سطر ورودی عدد صحیح و مثبت nn داده می‌شود. 3n1003 \leq n \leq 100

خروجی

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

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

مثال

ورودی نمونه ۱

3
Plain text

خروجی نمونه ۱

3 2 1
Plain text

خروجی برنامه‌های بالا به ازای این ورودی 2 1 3 است که صعودی مرتب نشده است.

ورودی نمونه ۲

5
Plain text

خروجی نمونه ۲

3 4 2 5 1
Plain text

خروجی برنامه‌های بالا به ازای این ورودی 3 2 1 4 5 است که صعودی مرتب نشده است.


ارسال پاسخ برای این سؤال
فایلی انتخاب نشده است.