المپدیا

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

ابزار کاربر

ابزار سایت


سوالات المپیاد:دوره ی تابستان:دوره ی ۱۸:برنامه نویسی:سوال ۱۵

چند بیشینه؟

قرارست برنامه‌ای بنویسیم که ‎$1 \le n \le 1000$‎ عدد را خوانده و تعداد دفعات تکرار عنصر بیشینه‌ی آن‌را چاپ کند.

برای مثال این برنامه برای آرایه‌ی ‎$\{4,3,2,4,1\}$‎ باید جواب ‎۲‎ و برای ‎$\{3,3,3,3,3\}$‎ باید جواب ‎۵‎ را چاپ کند.

برای این‌منظور تابع ‎FindMaxOccurance‎ برنامه زیر را با کمک توابع STL‎ در حداقل تعداد دستور کامل کنید (نمره کامل به ‎۲‎ دستور تعلّق می‌گیرد). دقت کنید که شما مجاز به استفاده از حلقه (اعم از for‎ یا while‎) یا تعریف متغیّر نیستید.

#include <cstdio>
#include <algorihtm>
int n;
int a[1000];
 
int FindMaxOccurance(int a[], int n) {
   // implement this function!
}
 
int main() {
  scanf("%d", &n);
  for (int i=0; i<n; i++)
     scanf("%d", a+i);
  printf("%d\n", FindMaxOccurance(a, n));
  return 0;
}

ابزار صفحه