Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <map>
- #include <vector>
- #include <algorithm>
- using namespace std;
- struct Computer {
- int potenza;
- string presa;
- };
- bool sortByFlops ( Computer p1, Computer p2 ) {
- return p1.potenza > p2.potenza;
- }
- int main( void ) {
- int numeroComputer, numeroPrese;
- cin >> numeroComputer >> numeroPrese;
- vector <Computer> computers ( numeroComputer );
- for ( int i = 0; i < numeroComputer; i++ )
- cin >> computers [ i ].potenza;
- for ( int i = 0; i < numeroComputer; i++ )
- cin >> computers [ i ].presa;
- map <string, int> preseDisponibili;
- for ( int i = 0; i < numeroPrese; i++ ) {
- string presaCorrente;
- cin >> presaCorrente;
- preseDisponibili [ presaCorrente ] ++;
- }
- sort( computers.begin(), computers.end(), sortByFlops );
- /// Usiamo prima le L10
- int it = 0;
- int potenza = 0;
- while ( preseDisponibili["L10"] > 0 && it < computers.size() ) {
- if ( computers[it].presa == "L10" ) {
- preseDisponibili["L10"] --;
- potenza += computers[it].potenza;
- computers[it].potenza = 0;
- }
- it ++;
- }
- it = 0;
- while ( preseDisponibili["L16"] > 0 && it < computers.size() ) {
- if ( computers[it].presa == "L16" ) {
- preseDisponibili["L16"] --;
- potenza += computers[it].potenza;
- computers[it].potenza = 0;
- }
- it ++;
- }
- it = 0;
- while ( preseDisponibili["bipasso"] > 0 && it < computers.size() ) {
- if ( computers[it].potenza != 0 ) {
- preseDisponibili["bipasso"] --;
- potenza += computers[it].potenza;
- computers[it].potenza = 0;
- }
- it ++;
- }
- cout << potenza << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement