- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- MS Excel
- iOS
- HTML
- CSS
- Android
- Python
- C Programming
- C++
- C#
- MongoDB
- MySQL
- Javascript
- PHP
- Physics
- Chemistry
- Biology
- Mathematics
- English
- Economics
- Psychology
- Social Studies
- Fashion Studies
- Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Convert a number of length N such that it contains any one digit at least 'K' times in C++
In this tutorial, we will be discussing a program to convert a number of length N such that it contains any one digit at least ‘K’ times.
For this we will be provided with a number of given length N. Our task is to convert the digits in the given number such that any one digit gets repeated at least ‘K’ times. Also, you have to calculate the cost of this operation which is the absolute difference between the two and finally print the minimum cost.
Example
#include <bits/stdc++.h> using namespace std; //calculating the minimum value and final number int get_final(int n, int k, string a){ int modtemp; //count of numbers changed to k int co; string temp; //storing the minimum cost pair<int, string> ans = make_pair(INT_MAX, ""); for (int i = 0; i < 10; i++) { temp = a; //storing the temporary modified number modtemp = 0; co = count(a.begin(), a.end(), i + '0'); for (int j = 1; j < 10; j++) { if (i + j < 10) { for (int p = 0; p < n; p++) { if (co <= k) break; if (i + '0' == temp[p] - j) { temp[p] = i + '0'; modtemp += j; co++; } } } if (i - j >= 0) { for (int p = n - 1; p >= 0; p--) { if (co >= k) break; if (i + '0' == temp[p] + j) { temp[p] = i + '0'; modtemp += j; co++; } } } } //replacing the minimum cost with the previous one ans = min(ans, make_pair(modtemp, temp)); } cout << ans.first << endl << ans.second << endl; } int main(){ int n = 5, k = 4; string a = "21122"; get_final(n, k, a); return 0; }
Output
1 21222
Advertisements
To Continue Learning Please Login
Login with Google