Pagini recente » Cod sursa (job #2245372) | Cod sursa (job #1142731) | Cod sursa (job #666083) | Cod sursa (job #691273) | Cod sursa (job #2670859)
#include <bits/stdc++.h>
using namespace std;
ifstream f("prod.in");
ofstream g("prod.out");
int cif[10], s;
vector<int> n1, n2, rez;
void Read()
{
for(int i = 1;i <= 9;++i)
f>>cif[i];
}
void numbers()
{
int c1 = 1, c2 = 9;
bool state = true;
while(c1 <= c2)
{
if(!cif[c1])
{
++c1;
continue;
}
else if(!cif[c2])
{
--c2;
continue;
}
if(state)
n1.push_back(c1), --cif[c1];
else
n2.push_back(c2), --cif[c2];
state ^= 1;
}
reverse(n2.begin(), n2.end());
}
void multiply()
{
int t = 0;
s = n1.size() + n2.size();
for(int i = 0;i <= n1.size() + n2.size();++i)
rez.push_back(0);
for(int i = 1;i <= n1.size();++i)
for(int j = 1;j <= n2.size();++j)
{
rez[i + j - 1] += n1[i - 1] * n2[j - 1] + t;
t = rez[i + j - 1] / 10;
rez[i + j - 1] %= 10;
}
if(t)
rez[s] = t;
}
void Solve()
{
numbers();
multiply();
for(int i = s;i >= 1;--i)
g<<rez[i];
}
int main()
{
Read();
Solve();
return 0;
}