注意:此题切不可多次for循环进行遍历,很有可能超时,数据给的时1e6还是很大的
思路:在输入时进对其进行操做,没循环一次和之前的最大,最小进行比较,然后用b数组进行统计其出现的次数,输入的数据成为下标,当循环完成后答案也就明朗。
注意:minx最初的最小值一定要能设多大设多大,最大值则相反,防止扰乱数据;如果之前minx写的是0的话那么求出的最小值也必定是0。
#include<iostream>
#include<algorithm>
#include<cstring>
#include <cmath>
#include<vector>
#define PII pair<int><int>
#define ll long long
#define endl "\n"
using namespace std;
const int N=1e6+10;
int a[N];
int b[N];
vector<char> str1;
int n;
int minx=99,maxx=0;
void read_in()
{
cin>>n;
for(int i=0;i<n;i++)
{
cin>>a[i];
b[a[i]]++;
minx=min(a[i],minx);
maxx=max(a[i],maxx);
}
}
void solve()
{
cout<<minx<<" "<<b[minx]<<endl;
cout<<maxx<<" "<<b[maxx]<<endl;
}
void expert_out()
{
}
int main()
{
read_in();
solve();
expert_out();
return 0;
}