Pagini recente » Cod sursa (job #2329067) | Cod sursa (job #2088159) | Cod sursa (job #632612) | Cod sursa (job #758655) | Cod sursa (job #667993)
Cod sursa(job #667993)
#include<iostream>
#include<fstream>
#include<cstring>
#define lmax 10000
using namespace std;
ifstream f("ecuatie.in",fstream::in);
ofstream g("ecuatie.out",fstream::out);
short int va[lmax],vc[lmax];
short int A,B,C,i,K,divi,rest,nra=-1,lolz;
void read()
{
f>>A>>B>>C>>K;
if(A<0)
{
for(i=A;i<=-1;i++)
{if(A%i==0)
va[++va[0]]=i;
// cout<<i<<"\n";
}
}
else
{
for(i=A;i>=1;i--)
if(A%i==0)
va[++va[0]]=i;
}
if(C<0)
{
for(i=C;i<=-1;i++)
if(C%i==0)
vc[++vc[0]]=i;
}
else
{
for(i=C;i>=1;i--)
if(C%i==0)
vc[++vc[0]]=i;
}
}
void show_a()
{
short int i;
if(A<0)
{
for(i=1;i<=va[0];i++)
cout<<va[i]<<" ";
for(i=va[0];i>=1;i--)
cout<<-va[i]<<" ";
cout<<"\n\n";
}
else
{
for(i=1;i<=va[0];i++)
cout<<-va[i]<<" ";
for(i=va[0];i>=1;i--)
cout<<va[i]<<" ";
cout<<"\n\n";
}
}
void show_c()
{
short int i;
if(C<0)
{
for(i=1;i<=vc[0];i++)
cout<<vc[i]<<" ";
for(i=vc[0];i>=1;i--)
cout<<-vc[i]<<" ";
cout<<"\n\n";
}
else
{
for(i=1;i<=vc[0];i++)
cout<<-vc[i]<<" ";
for(i=vc[0];i>=1;i--)
cout<<vc[i]<<" ";
cout<<"\n\n";
}
}
void solve()
{
if(A<0)
{
if(divi<=va[0])
nra=va[divi];
else
{
divi%=va[0];
nra=-va[va[0]-divi+1];
}
}
else
{
if(divi<=va[0])
nra=-va[divi];
else
{
divi%=va[0];
nra=va[va[0]-divi+1];
}
}
}
void solve_all()
{
short int i;
if(rest==1)
{
if(C<0)
{for(i=1;i<=vc[0];i++)
if( nra*vc[i]+(A/nra)*(C/vc[i])==B)
lolz=vc[i];
}
else
{
for(i=1;i<=vc[0];i++)
if( (nra *(-vc[i]) + (A/nra)*(C/(-vc[i]) ))==B)
lolz=-vc[i];
}
}
else
{
if(C<0)
{
for(i=1;i<=vc[0];i++)
if(( nra * (-vc[i]) +(A/nra)*(C/(-vc[i])))==B)
lolz=-vc[i];
}
else
{
for(i=1;i<=vc[0];i++)
if((nra*vc[i]+(A/nra)*(C/vc[i])==B))
lolz=vc[i];
}
}
}
void show_solutie()
{ g<<"(";
if(A/nra==1)
g<<"x";
else
if(A/nra==-1)
g<<"-x";
else
g<<(A/nra)<<"x";
if(lolz>0)
g<<"+"<<lolz;
else
g<<lolz;
g<<")(";
if(nra==1)
g<<"x";
else
if(nra==-1)
g<<"-x";
else
g<<nra<<"x";
if(C/lolz>0)
g<<"+"<<C/lolz;
else
g<<C/lolz;
g<<")";
}
int main()
{
read();
divi=K/2;
rest=K%2;
divi+=1;
// show_a();
// show_c();
cout<<"\n";
solve();
// cout<<divi<<" "<<nra<<"\n";
solve_all();
//cout<<lolz;
if(lolz)
show_solutie();
f.close();
g.close();
return 0;
}