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()
- {
- string str;
- cin >> str;
- vector <int> a(10);
- int size = str.size();
- if (str.size()>=37||str.size()==1)
- {
- cout << -1 << " " << -1;
- return 0;
- }
- for (int i = 0; i < str.size(); i++)
- {
- a[str[i] - '0']++;
- }
- int ch = size - a[0];
- if (size == 2 && a[0] == 2)
- {
- cout << 0 << " " << 0;
- return 0;
- }
- if (ch == 0)
- {
- cout << -1<<" " << -1;
- return 0;
- }
- if (ch == 1 && size >= 20||(size==19)&&ch==1&&a[1]==0)
- {
- cout << -1 << " " << -1;
- return 0;
- }
- bool check = true;
- long long int small=0;
- int cnt = 0;
- if (size==19&&a[1] == 1 && a[0] == 18)
- {
- cout << 0 << " ";
- long long int k = 1e18;
- cout << k;
- return 0;
- }
- if (a[0] != 0 && size <= 18)
- {
- cout << 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 < 18 || ((size == 18)&&a[0]==17)&&a[1]==1)
- {
- check = false;
- cout << small << " ";
- }
- }
- }
- long long int biggest=0;
- cnt = 0;
- while (size)
- {
- for (int i = 0; i < 10; i++)
- {
- if (a[i]!=0&&(biggest != 0 || (biggest == 0 && i != 0)))
- {
- biggest = biggest * 10;
- cnt = i;
- a[i]--;
- size--;
- biggest += cnt;
- break;
- }
- }
- }
- cout << biggest;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement