Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- 3. Feladat: Ki melyik versenyen fogta a legnagyobb harcsát?
- */
- #include <iostream>
- #include "summation.hpp"
- #include "seqinfileenumerator.hpp"
- #include "stringstreamenumerator.hpp"
- #include "linsearch.hpp"
- #include "maxsearch.hpp"
- using namespace std;
- struct Fish {
- string type;
- int weight;
- friend istream& operator >> (istream& in, Fish& fish) {
- in >> fish.type >> fish.weight;
- return in;
- }
- };
- class MaxCarp : public MaxSearch<Fish, int> {
- virtual int func(const Fish& e) const {
- return e.weight;
- }
- virtual bool cond(const Fish& e) const {
- return e.type == "harcsa";
- }
- };
- struct Competitor {
- string name;
- string competition;
- int maxCarp;
- friend istream& operator >> (istream& in, Competitor& competitor) {
- string line;
- getline(in, line);
- stringstream str(line);
- string temp;
- str >> competitor.name >> competitor.competition;
- StringStreamEnumerator<Fish> sse(str);
- MaxCarp maxcarp;
- maxcarp.addEnumerator(&sse);
- maxcarp.run();
- if (maxcarp.found()) {
- competitor.maxCarp = maxcarp.optElem().weight;
- }
- else {
- competitor.maxCarp = 0;
- }
- cout << competitor.name << " " << competitor.maxCarp << endl;
- return in;
- }
- };
- class FinalMax : public MaxSearch<Competitor, int> {
- virtual int func(const Competitor& e) const {
- return e.maxCarp;
- }
- };
- int main()
- {
- SeqInFileEnumerator<Competitor> sife("input.txt");
- FinalMax finalmax;
- finalmax.addEnumerator(&sife);
- finalmax.run();
- if (finalmax.optElem().maxCarp == 0) {
- cout << "Nem fogott senki harcsat." << endl;
- }
- else {
- cout << "Horgasz neve: " << finalmax.optElem().name << ", verseny neve: " << finalmax.optElem().competition << endl;
- cout << finalmax.optElem().maxCarp << endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement