fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. typedef long long int ll;
  4.  
  5. pair<int,int> findlarge(vector<ll>& arr , int n){
  6.  
  7. ll largest=0 , secondlargest=0 , largestindex=-1;
  8. for(int i=0;i<n;i++){
  9. if(arr[i]>largest){
  10. secondlargest=largest;
  11. largest=arr[i];
  12. largestindex=i;
  13. }else if(arr[i]>secondlargest && arr[i]!=largest){
  14. secondlargest=arr[i];
  15. }
  16. }
  17. return {largestindex,secondlargest};
  18. }
  19.  
  20. int main() {
  21. vector<ll> arr={4,5,5,2,4};
  22. int n=arr.size();
  23. int step=0;
  24. while(true){
  25. int count=0;
  26. pair<int,int> ok=findlarge(arr,n);
  27. arr[ok.first]=ok.second;
  28. for(int i=0;i<n-1;i++){
  29. if(arr[i]!=arr[i+1]){
  30. count++;
  31. }
  32. }
  33. step++;
  34. for(int i=0;i<n;i++){
  35. cout<<arr[i];
  36. }
  37. cout<<endl;
  38. if(count==0){
  39. break;
  40. }
  41. }
  42. cout<<step;
  43.  
  44.  
  45. return 0;
  46. }
Success #stdin #stdout 0s 5324KB
stdin
Standard input is empty
stdout
44524
44424
24424
22424
22224
22222
6