Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <math.h>
- #include <algorithm>
- using namespace std;
- int len[10];
- int resi(int n, int b, int e, int k) {
- if (k == 0) {
- return pow(e, 2) - pow(b, 2);
- }
- int a = INT_MAX, c = INT_MAX;
- if (len[e] <= k) {
- int temp2 = e;
- temp2--;
- while (len[temp2] == 0) {
- temp2--;
- }
- a = resi( n, b, temp2, k - len[e]);
- }
- if (len[b] <= k) {
- int temp2 = b;
- temp2++;
- while (len[temp2] == 0) {
- temp2++;
- }
- c = resi( n, temp2, e, k - len[b]);
- }
- if (a == INT_MAX && c == INT_MAX) {
- k = 0;
- return resi( n, b, e, 0);
- }
- return min(a, c);
- }
- int main() {
- int n, k;
- cin >> n >> k;
- for (int i = 0; i < 10; i++) {
- len[i] = 0;
- }
- for (int i = 0; i < n; i++) {
- int temp;
- cin >> temp;
- len[temp]++;
- }
- int mali, veliki;
- for (int i = 0; i < 10; i++) {
- if (len[i] != 0) {
- mali = i;
- break;
- }
- }
- for (int i = 9; i >= 0; i--) {
- if (len[i] != 0) {
- veliki = i;
- break;
- }
- }
- int maxlen = len[0];
- for (int i = 1; i < 10; i++) {
- if (maxlen < len[i]) {
- maxlen = len[i];
- }
- }
- if (n - maxlen <= k) {
- cout << 0;
- }
- else {
- cout << resi(n, mali, veliki, k);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement