Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)

Paste

Pasted as C++ by Brangakmeniai ( 15 years ago )
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <algorithm> 

using namespace std;

const char duomenu_failas[] = "pradiniai_duomenys.txt";

//raudonuju ir melynuju brangakmeniu skaiciai
int r_skaic, m_skaic;

//pavogtu brangakmeniu skaiciai
int aps_r_skaic, aps_m_skaic;

//brangakmeniu masyvai
int r_brang[9999];
int m_brang[9999];

//Funkciju aprasymai
void surasti_galimus_nuostolius();
void nuskaityti_faila();

//main metodas
int main(int argc, char *argv[])
{
    //nuskaitome faila
    nuskaityti_faila();
    
    //surandame galimus nuostolius
    surasti_galimus_nuostolius();
    
    system&#40;"PAUSE"&#41;;
    return EXIT_SUCCESS;
}

//metodamas apskaiciuojantis didziausius galimus nuostolius
void surasti_galimus_nuostolius()
{
     //surikiuojam masyvus, kad galetume is ju galo pasiimti brangiausius brangakmenius
     sort(r_brang, r_brang + r_skaic);
     sort(m_brang, m_brang + m_skaic);
     
     //pavogtu brangakmeniu kaina
     int kaina = 0;
     
     //surandam kokius brangiausius raudonuosiu brangakmenius galejo pavogti 
     //ir pridedam prie kainos
     for(int i = r_skaic - 1; i >= r_skaic - aps_r_skaic; i--)
     {
         kaina += r_brang[i];   
     }
     
     //surandam kokius brangiausius melynuosius brangakmenius galejo pavogti 
     //ir pridedam prie kainos     
     for(int j = m_skaic - 1; j >= m_skaic - aps_m_skaic; j--)
     {
         kaina += m_brang[j];   
     }     
     
     //atvaizduojam kaina
     cout << kaina << endl;
}

//failo nuskaitymo metodas
void nuskaityti_faila()
{
     //df - duomenu failas
     ifstream df(duomenu_failas);
     
     //patikrinam ar eina atidaryti faila
     if (!df.is_open()) { 
          cout << "Neina nuskaityti failo";   
          return; //tai nieko negrazinantis metodas, bet return; naudojam sustabdyti jo vykdyma.          
     }
     
     //duomenu nuskaitymas
     df >> r_skaic; df >> m_skaic;
     df >> aps_r_skaic; df >> aps_m_skaic;

     //duomenu patikra
     if(aps_r_skaic > r_skaic || aps_m_skaic > m_skaic || aps_m_skaic > 9 || r_skaic > 10000 || m_skaic > 10000)
     {
         cout << "Duomenu faile yra klaidu (perzengti ribojimai), prasome patikrinti faila." << endl;
         return;
     }

     //nuskaitom raud. branh. kainas
     for(int i = 0; i < r_skaic; i++)
         df >> r_brang[i];

     //nuskaitom mel. brang. kainas
     for(int j = 0; j < m_skaic; j++)
         df >> m_brang[j];
     
     //uzdarome faila    
     df.close();
}

 

Revise this Paste

Your Name: Code Language: