● Codeforces Round #233 (Div. 2) - A. Pages
قلی در حال ساخت یک وب سایت است و الآن او روی بخش شماره صفحات پایین صفحه کار می کند. کل سایت n صفحه دارد که از 1 تا n شماره گذاری شده اند و برای کاربری که هم اکنون در صفحه ی p ام سایت باشد، پیمایشگر صفحات (navigation) به صورت زیر خواهد بود:
<< p - k p - k + 1 ... p - 1 (p) p + 1 ... p + k - 1 p + k >>
وقتی کسی بر روی دکمه ">>" کلیک می کند، به صفحه 1 هدایت می شود و زمانی که کسی بر روی دکمه "<< " کلیک می کند به صفحه n هدایت می شود. و البته اگر کسی بر روی اعداد کلیک کند، به صفحه مربوطه هدایت می شود و توجه داشته باشید که فقط k صفحه از راست و k صفحه از سمت چپ صفحه ای که در آن حضور دارد قابل رؤیت است.
● برخی شرایط در navigation وجود دارد :
اگر صفحه ی 1 قابل رؤیت است، دکمه ">>" نباید چاپ شود.
اگر صفحه ی n قابل رؤیت است، دکمه "<<" نباید چاپ شود.
اگر شماره صفحه کوچکتر از 1 یا بیشتر از n است ، نباید چاپ شود .
در پیاده سازی این بخش از وبسایت، او را کمک کنید.
9 6 3
<< 3 4 5 (6) 7 8 9
ورودی:
خط اول ورودی شامل سه عدد n و p و k به ترتیب نماینده ی تعداد صفحات کل سایت، شماره صفحه ی فعلی و دورنمای قابل رؤیت از صفحه ی فعلی هستند:
n, p, k (3 ≤ n ≤ 100; 1 ≤ p ≤ n; 1 ≤ k ≤ n)
خروجی:
با پیروی از الگوی توضیح داده شده، در یک خط پیمایشگر صفحات پایین وبسایت را چاپ کنید.
// A Drop of the Programming Sea - adops.blog.ir#include <iostream> using namespace std; int main () { int n, p, k; cin >> n >> p >> k; if(p-k > 1) cout << "<< "; for(int i=k*-1; i<=k; i++) if(p+i>=1 && p+i<=n) if(p+i == p) cout << "(" << p+i << ") "; else cout << p+i << " "; if (p+k < n) cout << ">>"; cout << endl ; }