Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include<cmath>
- #include<limits>
- #include<fstream>
- #include<cstdlib>
- using namespace std;
- bool isPos(int a, int b, int c)
- {
- int n1, n2, n3;
- if(a>0){n1 = 1;}
- else{n1=-1;}
- if(b>0){n2 = 1;}
- else{n2=-1;}
- if(c>0){n3 = 1;}
- else{n3=-1;}
- return a*b*c;
- }
- int main() {
- ifstream fin("/home/daminator/Desktop/Programming/YandexAlgorithms/1.0/Tasks2/input.txt");
- if(!fin)
- {
- cerr << "Can't open file";
- exit(1);
- }
- int x;
- long long int neg = 0, zer = 0, pos = 0, k = 0;
- int mn1 = INFINITY, mn2 = INFINITY, mn3 = INFINITY, mx1 = -INFINITY, mx2 = -INFINITY, mx3 = -INFINITY;
- while(fin)
- {
- fin>>x;
- k++;
- if(x==0){zer++;}
- else if(x>0){pos++;}
- else if(x<0){neg++;}
- if(x<mn1)
- {
- mn3 = mn2;
- mn2 = mn1;
- mn1 = x;
- }
- else if(x<mn2)
- {
- mn3 = mn2;
- mn2 = x;
- }
- else if(x<mn3)
- {
- mn3 = x;
- }
- if(x>mx1)
- {
- mx3 = mx2;
- mx2 = mx1;
- mx1 = x;
- }
- else if(x>mx2)
- {
- mx3 = mx2;
- mx2 = x;
- }
- else if(x>mx3)
- {
- mx3 = x;
- }
- }
- fin.close();
- cout << "answer: "<<endl;
- cout << k << endl;
- cout << mn1 <<" "<<mn2<<" "<<mn3 << endl;
- cout << mx1 <<" "<<mx2<<" "<<mx3 << endl;
- if(k==0){cout << " "; return 0;}
- //zero answers
- if(k==3){cout << mn1 <<" "<<mn2<<" "<<mn3; return 0;}
- else if(neg+pos<=2){cout << mn1 <<" "<<mn2<<" "<<mn3; return 0;}
- else if(pos==0&&zer!=0){cout << mx1 <<" "<<mx2<<" "<<mx3; return 0;}
- else if(pos==2&&neg==1&&zer!=0){cout << mx1 <<" "<<mx2<<" "<<mx3; return 0;}
- //neg answers
- if(neg!=0&&pos==0&&zer==0){cout << mx1 <<" "<<mx2<<" "<<mx3; return 0;}
- //pos answers
- if(pos<=2){cout << mx1 <<" "<<mn1<<" "<<mn2; return 0;}
- else
- {
- int p = numeric_limits<long long int>::max();
- int opt1 = p-mx1+p-(abs(mn1))+p-abs(mn2);
- int opt2 = p-(abs(mx1))+p-abs(mx2)+p-abs(mx3);
- if(opt1 < opt2)
- {
- cout << mx1 <<" "<<mn1<<" "<<mn2; return 0;
- }
- else{cout << mx1 <<" "<<mx2<<" "<<mx3; return 0;}
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement