Cod sursa(job #2114828)

Utilizator RazvanGutaGuta Razvan Alexandru RazvanGuta Data 25 ianuarie 2018 21:52:40
Problema Prod Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.28 kb
#include<fstream>
#include<algorithm>
using namespace std;
ifstream f("prod.in");
ofstream g("prod.out");
int a[1001],i,x,j,n,nr11,nr22,ok,paritate,p,T,rez[30001],sol;
int nr1[1001],nr2[1001];
int main()
{
    for(i=1;i<=9;i++)
    {
        f>>x;
        for(j=1;j<=x;j++)
            a[++n]=i;
    }
    i=n;
    ok=1;
    while(ok==1&&i>=1)
    {
        if(nr11<=nr22)
            nr1[++nr11]=a[i];
        else
            nr2[++nr22]=a[i];
        if(nr1[nr11]!=nr2[nr22]&&nr11==nr22)
            ok=0;
        i--;
    }
    j=i;
    i=n-i;
    i=n-i;
    paritate=i;
  while(i>=1)
  {
      if(paritate%2==1)
      {
          nr2[++nr22]=a[i];
      }
      else
      {
          nr1[++nr11]=a[i];
      }
      i--;
      paritate=i;
  }
  reverse(nr1+1,nr1+1+nr11);
  reverse(nr2+1,nr2+1+nr22);
  nr1[0]=nr11;
  nr2[0]=nr22;
  rez[0]=nr1[0]+nr2[0]-1;
  for (i=1;i<=nr1[0]+nr2[0];)
    rez[i++]=0;
  for (i=1;i<=nr1[0];i++)
    for (j=1;j<=nr2[0];j++)
      rez[i+j-1]+=nr1[i]*nr2[j];
  for (i=1;i<=rez[0];i++)
    { T=(rez[i]+=T)/10;
      rez[i]%=10;
    }
  if (T) rez[++rez[0]]=T;
  if(rez[nr1[0]+nr2[0]]==0)
  for(i=nr1[0]+nr2[0]-1;i>=1;i--)
    g<<rez[i];
    else
    for(i=nr1[0]+nr2[0];i>=1;i--)
    g<<rez[i];
    return 0;
}