Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- using namespace std;
- struct Irasas {
- string kas, kam;
- int kiek;
- };
- struct Duomenys {
- Irasas irasai[2500];
- int kiek;
- };
- Duomenys gautiDuomenis(){
- Duomenys duom;
- duom.kiek = 0;
- ifstream in("Eurovizija.csv");
- while(!in.fail()){
- string eilute;
- getline(in, eilute);
- if(eilute.size() > 0){
- Irasas irasas;
- int pirma = eilute.find(';');
- int antra = eilute.rfind(';');
- irasas.kas = eilute.substr(0, pirma);
- irasas.kam = eilute.substr(pirma+1, antra-pirma-1);
- irasas.kiek = stoi(eilute.substr(antra+1));
- //cout << irasas.kas << " " << irasas.kam << " " << irasas.kiek << endl;
- duom.irasai[duom.kiek] = irasas;
- duom.kiek++;
- }
- }
- in.close();
- return duom;
- }
- void spausdinti(Duomenys duom){
- ofstream out("Rezultatai.txt");
- out << "Pradinis sąrašas:" << endl;
- for(int i = 0; i < duom.kiek; ++i){
- out << duom.irasai[i].kas << " " << duom.irasai[i].kam << " " << duom.irasai[i].kiek << endl;
- }
- out << endl;
- out.close();
- }
- void surikiuoti(Duomenys &duom){
- for(int ii = 0; ii < duom.kiek; ++ii){
- for(int i = 0; i < duom.kiek-1; ++i){
- if(duom.irasai[i].kas > duom.irasai[i+1].kas){
- swap(duom.irasai[i], duom.irasai[i+1]);
- } else if(duom.irasai[i].kas == duom.irasai[i+1].kas){
- if(duom.irasai[i].kiek < duom.irasai[i+1].kiek){
- swap(duom.irasai[i], duom.irasai[i+1]);
- }
- }
- }
- }
- }
- void pateiktiSaliuSarasa(Duomenys &duom){
- duom = gautiDuomenis();
- surikiuoti(duom);
- spausdinti(duom);
- }
- Duomenys gautiBalus(Duomenys duom){
- Duomenys balai;
- balai.kiek = 0;
- for(int i = 0; i < duom.kiek; ++i){
- int arRadom = 0;
- for(int ii = 0; ii < balai.kiek; ++ii){
- if(balai.irasai[ii].kas == duom.irasai[i].kam){
- balai.irasai[ii].kiek += duom.irasai[i].kiek;
- arRadom = 1;
- break;
- }
- }
- if(arRadom == 0){
- balai.irasai[balai.kiek].kas = duom.irasai[i].kam;
- balai.irasai[balai.kiek].kiek = duom.irasai[i].kiek;
- balai.kiek++;
- }
- }
- return balai;
- }
- void spausdintiBalus(Duomenys balai){
- ofstream out("Rezultatai.txt", ostream::app);
- out << "Šalių gauti taškai:" << endl;
- for(int i = 0; i < balai.kiek; ++i){
- out << balai.irasai[i].kas << " " << balai.irasai[i].kiek << endl;
- }
- out << endl;
- out.close();
- }
- void pateiktiSaliuBalus(Duomenys duom){
- Duomenys balai = gautiBalus(duom);
- surikiuoti(balai);
- spausdintiBalus(balai);
- }
- Duomenys gautiGeriausius(Duomenys duom){
- Duomenys geriausi;
- geriausi.kiek = 0;
- for(int i = 0; i < duom.kiek; ++i){
- if(duom.irasai[i].kiek == 12){
- int arRadom = 0;
- for(int ii = 0; ii < geriausi.kiek; ++ii){
- if(geriausi.irasai[ii].kas == duom.irasai[i].kam){
- geriausi.irasai[ii].kiek++;
- arRadom = 1;
- break;
- }
- }
- if(arRadom == 0){
- geriausi.irasai[geriausi.kiek].kas = duom.irasai[i].kam;
- geriausi.irasai[geriausi.kiek].kiek = 1;
- geriausi.kiek++;
- }
- }
- }
- return geriausi;
- }
- void spausdintiGeriausius(Duomenys geriausi){
- ofstream out("Rezultatai.txt", ostream::app);
- int maksimumas = 0;
- for(int i = 0; i < geriausi.kiek; ++i){
- if(maksimumas < geriausi.irasai[i].kiek)
- maksimumas = geriausi.irasai[i].kiek;
- }
- out << "Daugiausiai " << maksimumas << " kartų(-us) vienai šaliai buvo skirta 12 balų" << endl;
- out << "Šios šalys yra:";
- for(int i = 0; i < geriausi.kiek; ++i){
- if(geriausi.irasai[i].kiek == maksimumas){
- out << " " << geriausi.irasai[i].kas;
- }
- }
- out.close();
- }
- void pateiktiGeriausius(Duomenys duom){
- Duomenys geriausi = gautiGeriausius(duom);
- surikiuoti(geriausi);
- spausdintiGeriausius(geriausi);
- }
- int main(){
- Duomenys duom;
- pateiktiSaliuSarasa(duom);
- pateiktiSaliuBalus(duom);
- pateiktiGeriausius(duom);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement