Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <vector>
- #include <string>
- #include <algorithm>
- #include <stdio.h>
- #include <iomanip>
- using namespace std;
- ifstream fin("input.txt");
- /*
- Россия; Москва; русский; 145000000; 17100000 км^2; рубли; демократическое федеративное правовое государство с республиканской формой правления; В.В. Путин
- Соедененные Штаты Америки; Вашингтон; английский; население: 327000000; 9519431 км^2; доллары США; федеративная президентская республика; Д.Д. Трамп
- Украина; Киев; украинский; население: 42000000; 603549 км^2; гривны; парламентско-президентская республика; В.А. Зеленский.
- */
- struct State {
- string title;
- string capital;
- string lang;
- long long population;
- double sqr;
- string val;
- string type;
- string dictator;
- int i = 0;
- void print()
- {
- cout << title << '\t' << capital << '\n' << lang << endl;
- cout << population << '\t' << sqr << endl;
- cout << val << endl;
- cout << type << '\n' << dictator << endl << endl;
- }
- void get()
- {
- string s;
- getline(fin, s);
- title = sscanf(s);
- capital = sscanf(s);
- lang = sscanf(s);
- string s_population = sscanf(s);
- population = stringToINT64(s_population);
- string s_sqr = sscanf(s);
- val = sscanf(s);
- sqr = stringToDouble(s_sqr);
- type = sscanf(s);
- dictator = sscanf(s);
- }
- string sscanf(string & t)
- {
- string s = "";
- char c = '$';
- if (i)i++;//убрать лишние пробелы
- while (t[i] != ';' && i != t.length())
- {
- s += t[i++];
- }
- i++;
- return s;
- }
- long long stringToINT64(string & s)
- {
- long long res = 0;
- long long mult = 1;
- for (int i = s.length() - 1; i >= 0 && isdigit(s[i]); --i, mult *= 10)
- res += mult * (s[i] - '0');
- return res;
- }
- double stringToDouble(string & s)
- {
- double res = 0;
- long long mult = 1;
- int pos = s.find("км^2");
- if (pos == string::npos)
- pos = s.length() - 1;
- pos--;
- for (int i = pos; i >= 0; i--)
- if (isdigit(s[i]))
- {
- res += mult * (s[i] - '0');
- mult *= 10;
- }
- return res;
- }
- };
- int main()
- {
- cout << setprecision(6) << fixed;
- setlocale(LC_ALL, "russian");
- int n;
- cin >> n;
- vector<State> a(n);
- for (int i = 0; i < n; ++i)
- a[i].get();
- for (int i = 0; i < n; ++i)
- if (a[i].population > 20000000)
- a[i].print();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement