Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <iomanip>
- using namespace std;
- ifstream fin("ecuatii.in");
- ofstream fout("ecuatii.out");
- int n;
- int main()
- {
- fin >> n;
- string s;
- while(n)
- {
- fin >> s;
- int eqPos = s.find('=');
- bool areX = false;
- char semn = '+';
- int nr = 0;
- int X = 0, L = 0;
- for(int i = 0; i < eqPos; i++)
- {
- if(s[i] == '+' || s[i] == '-')
- {
- if(semn == '+')
- {
- if(areX)
- {
- if(nr == 0)
- nr = 1;
- X += nr;
- }
- else if(nr)
- L -= nr;
- }
- else
- {
- if(areX)
- {
- if(nr == 0)
- nr = 1;
- X -= nr;
- }
- else if(nr)
- L += nr;
- }
- areX = false;
- semn = s[i];
- nr = 0;
- }
- else if(s[i] == 'x')
- areX = true;
- else
- nr = nr * 10 + s[i] - 48;
- }
- if(semn == '+')
- {
- if(areX)
- {
- if(nr == 0)
- nr = 1;
- X += nr;
- }
- else if(nr)
- L -= nr;
- }
- else
- {
- if(areX)
- {
- if(nr == 0)
- nr = 1;
- X -= nr;
- }
- else if(nr)
- L += nr;
- }
- /// DUPA EGAL
- int len = s.length();
- nr = 0;
- semn = '+';
- areX = false;
- for(int i = eqPos + 1; i < len; i++)
- {
- if(s[i] == '+' || s[i] == '-')
- {
- if(semn == '+')
- {
- if(areX)
- {
- if(nr == 0)
- nr = 1;
- X -= nr;
- }
- else if(nr)
- L += nr;
- }
- else
- {
- if(areX)
- {
- if(nr == 0)
- nr = 1;
- X += nr;
- }
- else if(nr)
- L -= nr;
- }
- areX = false;
- semn = s[i];
- nr = 0;
- }
- else if(s[i] == 'x')
- areX = true;
- else
- nr = nr * 10 + s[i] - 48;
- }
- if(semn == '+')
- {
- if(areX)
- {
- if(nr == 0)
- nr = 1;
- X -= nr;
- }
- else if(nr)
- L += nr;
- }
- else
- {
- if(areX)
- {
- if(nr == 0)
- nr = 1;
- X += nr;
- }
- else if(nr)
- L -= nr;
- }
- if(X == 0 && L == 0)
- fout << "infinit\n";
- else if(X == 0 || L == 0)
- fout << "imposibil\n";
- else
- {
- char Semn;
- if(X > 0 && L > 0)
- Semn = '+';
- else if(X < 0 && L < 0)
- Semn = '+';
- else
- Semn = '-';
- X = abs(X);
- L = abs(L);
- double rez = (double)(L) / (double)(X);
- if(Semn == '-')
- fout << Semn;
- fout << fixed << setprecision(4) << rez << '\n';
- }
- n--;
- }
- fin.close();
- fout.close();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement