Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <algorithm>
- using namespace std;
- void citire(int vect[], int& n, int& x)
- {
- cout << "Introduceti N: ";
- cin >> n;
- cout << "Introduceti X: ";
- cin >> x;
- cout << "Introduceti preturile: ";
- for (int i = 0; i < n; i++)
- cin >> vect[i];
- }
- //se vor sterge X obiecte cu pret maxim care se afla inaintea lui a[i]=0
- void modificareCos(int vect[], int n, int x)
- {
- for (int i = 0; i < n; i++)
- if (vect[i] == 0)
- {
- sort(vect, vect + i + 1);
- int indice = i - x + 1;
- if (indice < 0)
- indice = 0;
- for (int j = indice; j <= i; j++)
- vect[j] = 0;
- }
- }
- //se vor sterge cate X obiecte cu pret maxim din tot cosul la intalnirea lui a[i]=0
- void modificareCos2(int vect[], int n, int x)
- {
- sort(vect, vect + n);
- int val0 = 0, indice;
- for (int i = 0; i < n; i++)
- if (vect[i] == 0)
- val0++;
- else
- break;
- sort(vect, vect + n, greater<int>());
- indice = val0 * x;
- if (indice > n)
- indice = n;
- for (int i = 0; i < indice; i++)
- vect[i] = 0;
- }
- /*void afisare(int vect[], int n)
- {
- for (int i = 0; i < n; i++)
- cout << vect[i] << ' ';
- cout << "\n";
- }*/
- enum
- {
- modificare1, modificare2
- };
- int pretFinal(int vect[], int n, int x, int criteriu)
- {
- int aux[100] = { 0 }, pret = 0;
- for (int i = 0; i < n; i++)
- aux[i] = vect[i];
- if (criteriu == modificare1)
- modificareCos(aux, n, x);
- if (criteriu == modificare2)
- modificareCos2(aux, n, x);
- //afisare(aux, n);
- for (int i = 0; i < n; i++)
- pret += aux[i];
- return pret;
- }
- int main()
- {
- int n, x, vect[100] = { 0 };
- citire(vect, n, x);
- cout << pretFinal(vect, n, x, modificare1) << ' ';
- cout << pretFinal(vect, n, x, modificare2);
- return 0;
- }
Add Comment
Please, Sign In to add comment