Pagini recente » Cod sursa (job #514808) | Cod sursa (job #1299658) | Cod sursa (job #2590488) | Cod sursa (job #1354644) | Cod sursa (job #1880841)
#include <cstdio>
#include <algorithm>
using namespace std;
int N, times, ans;
int v[1000000];
void QuickSort(int v[], int left, int right){
int i,last;
if(left >= right){
return;
}
swap(v[left], v[(left+right)/2]);
last = left;
for(i = left + 1; i <= right; i++){
if(v[i] < v[left]){
swap(v[++last], v[i]);
}
}
swap(v[left], v[last]);
QuickSort(v, left, last - 1);
QuickSort(v, last + 1, right);
}
int Majority(){
QuickSort(v, 0, N - 1);
int i = 0;
while(i < N){
int j = i;
while(j < N && v[j + 1] == v[i]) j++;
if(j - i + 1 > N / 2){
times = j - i + 1;
return v[i];
}
i = j + 1;
}
return -1;
}
int main(){
freopen("elmaj.in", "r", stdin);
freopen("elmaj.out", "w", stdout);
scanf("%d", &N);
for(int i = 0; i < N; i++){
scanf("%d", &v[i]);
}
ans = Majority();
printf("%d %d", ans, times);
return 0;
}