Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <fstream>
- #include <algorithm>
- #include <string>
- using namespace std;
- int main()
- {
- bool www = false;
- string str;
- cin >> str;
- vector <int> a(10);
- int size = str.size();
- if (str.size() >= 39 || str.size() == 1)
- {
- cout << -1 << " " << -1;
- return 0;
- }
- for (int i = 0; i < str.size(); i++)
- {
- a[str[i] - '0']++;
- }
- long long int biggest = 0;
- if (size == 38)
- {
- if (a[1] == 2 && a[0] == 36)
- {
- long long int k = 1e18;
- cout << k << " " << k;
- return 0;
- }
- else
- {
- cout << -1 << " " << -1;
- return 0;
- }
- }
- int ch = size - a[0];
- if (a[9] == 37)
- {
- cout << -1 << " " << -1;
- return 0;
- }
- if (size == 2 && a[0] == 2)
- {
- cout << 0 << " " << 0;
- return 0;
- }
- if (ch == 0)
- {
- cout << -1 << " " << -1;
- return 0;
- }
- if (ch == 1 && size >= 21 || (size == 20) && ch == 1 && a[1] == 0)
- {
- cout << -1 << " " << -1;
- return 0;
- }
- bool check = true;
- long long int small = 0;
- int cnt = 0;
- if (size == 20 && a[1] == 1 && a[0] == 19)
- {
- cout << 0 <<" ";
- long long int k = 1e18;
- cout << k;
- return 0;
- }
- if (a[0] != 0 && size <= 19)
- {
- cout << 0 << " ";
- a[0]--;
- size--;
- }
- else
- {
- while (check)
- {
- for (int i = 0; i < 10; i++)
- {
- if (a[i] != 0 && (small != 0 || (small == 0 && i != 0)))
- {
- small = small * 10;
- cnt = i;
- a[i]--;
- size--;
- small += cnt;
- break;
- }
- }
- if (size < 19 || ((size == 19) && a[0] == 18) && a[1] == 1)
- {
- check = false;
- long long int k = 1e18;
- if (size == 18 && small == k)
- {
- www = true;
- biggest = small;
- }
- else
- {
- if (small > k)
- {
- cout << -1 << " " << -1;
- return 0;
- }
- else
- {
- cout << small << " ";
- }
- }
- }
- }
- }
- cnt = 0;
- long long int bigges = 0;
- while (size)
- {
- for (int i = 0; i < 10; i++)
- {
- if (a[i] != 0 && (bigges != 0 || (bigges == 0 && i != 0)))
- {
- bigges = bigges * 10;
- cnt = i;
- a[i]--;
- size--;
- bigges += cnt;
- break;
- }
- }
- if (www)
- {
- small = bigges;
- }
- else
- {
- biggest = bigges;
- }
- }
- if (!www)
- {
- cout << biggest;
- }
- else
- {
- cout << small << " " << biggest;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement