المپدیا

دانش‌نامه‌ی المپیاد کامپیوتر ایران

ابزار کاربر

ابزار سایت


سوالات المپیاد:دوره ی تابستان:دوره ی ۲۱:برنامه نویسی:سوال ۱۰

سوال ۱۰

برنامه زیر را در نظر بگیرید:

	#include <iostream>
	using namespace std;
	
	int main() {
		int n;
		cin >> n; // n is always less than 20
		int a[20];
		for(int i=0; i<n; ++i)
			cin >> a[i];
		// اینجا کد بنویسید
	    // ...
	    // ...
	    Return 0;
	}

در قسمت نشان داده شده، دستوراتی (نه لزوماً فقط ۳ خط!) بنویسید که تنها با استفاده از دو دستور حلقه و دو دستور شرط، بررسی کند که آیا اندیس‌های $b_1,b_2, \cdots ,b_k$ وجود دارند به‌طوری که $a[b_{k-1}] = a[b_k]$ ^ $\cdots$ ^ $a[b_2]$ ^ $a[b_1]$ (همه‌ی $b_i$ها باید متمایز باشند و $2 \leq k \leq n \leq 20$ ، ترتیب $b_i$ها مهم نیست). در صورت وجود این اعداد، خروجی برنامه شما باید برابر YES و در غیر این صورت برابر NO باشد.


ابزار صفحه