Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- #include <cstring>
- #include <iomanip>
- #include <ctime>
- #include <limits>
- #include <vector>
- #include <algorithm>
- using namespace std;
- void fillArr(vector <int>& arr);
- void mostFrequentNumber(vector <int>& arr);
- int main() {
- int lenghtArr{};
- cin >> lenghtArr;
- vector <int> arr(lenghtArr);
- fillArr(arr);
- mostFrequentNumber(arr);
- return 0;
- }
- void fillArr(vector <int>& arr) {
- int num{};
- for (int i = 0; i < arr.size(); i++) {
- cin >> arr[i];
- }
- }
- void mostFrequentNumber(vector <int>& arr) {
- vector <int> reppArr = arr;
- reppArr.erase(reppArr.begin(), reppArr.end());
- int currentNum{},biggestNum{},numPlusNext{},bigestCounter{},currCounter{},counter{},num{};
- for (int i = 0; i < arr.size(); i++) {
- numPlusNext = arr[i + 1];
- currentNum = arr[i];
- if (currentNum == numPlusNext) {
- counter++;
- currCounter += counter;
- num = numPlusNext;
- }
- else {
- currCounter = 0;
- }
- if (currCounter > bigestCounter) {
- bigestCounter = currCounter;
- biggestNum = num;
- }
- if (currCounter == bigestCounter) {
- auto it = find(reppArr.begin(), reppArr.end(), num);
- if (it == reppArr.end()) { // element not found
- reppArr.push_back(num);
- }
- }
- if (arr[i + 2] == arr.size()) {
- arr.erase(arr.begin());
- }
- }
- for(int i = 0; i < reppArr.size();i++){
- if(reppArr[0] !=0){
- sort(reppArr.begin(),reppArr.end());
- if(reppArr[i] == reppArr.back()){
- cout << reppArr[i];
- } else{
- cout << reppArr[i] << " ";
- }
- }else{
- cout << biggestNum << '\n';
- break;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement