Cod sursa(job #3276220)

Utilizator PitigoiOlteanEmanuelPitigoi Oltean Emanuel PitigoiOlteanEmanuel Data 12 februarie 2025 22:16:54
Problema Sarpe Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 2.44 kb
#include <fstream>
#include <queue>
#include <vector>
#include <unordered_map>
#include <algorithm>

using namespace std;
ifstream cin("snake.in");
ofstream cout("snake.out");
 int a[1005],b[1005],c[3005],rez[3005];
int prod()
{

    for(int i=1;i<=a[0];i++)
    {
        for(int k=1;k<=b[0];k++)
        {
            c[i+k-1]+=a[i]*b[k];
         //cout<<a[i]<<" "<<b[k]<<" "<<c[i]<< '\n';
        }
    }

    int ca;
    long long t=0;
    for(int i=1;i<a[0]+b[0];i++)
    {
        t+=c[i];
        c[i]=t%10;
        if(t>0)
        {
            ca=i;
        }
        t/=10;
    //cout<<i<<" "<<t<<"\n";



    }


    while(t>0)
    {
        ca++;
        c[ca]=t%10;
        t/=10;

    }
    for(int i=1;i<=ca;i++)
    {
        b[i]=c[i];

    }
    b[0]=ca;
     for(int i=1;i<=ca;i++)
    {
        c[i]=0;
       // cout<<b[i]<<" ";
    }


}

string n;
int panarame;


int sum()
{
    int t=0;

    for(int i=1;i<=max(rez[0],b[0]  );i++ )
    {
            t+=rez[i];
            t+=b[i];
            rez[i]=t%10;
            t/=10;
    }
    panarame=max(rez[0],b[0]);

    while(t>0)
    {
        panarame++;
        rez[panarame]=t%10;

        t/=10;
    }
    rez[0]=panarame;

}




int scad()
{
    for(int i=1;i<=n.length();i++)
    {
        if(a[i]>0)
        {
            a[i]--;
            break;
        }
        a[i]=9;
    }

}
int scad1()
{
     for(int i=1;i<=n.length();i++)
    {
        if(b[i]>0)
        {
            b[i]--;
            break;
        }
        b[i]=9;
    }
}


int main()
{

    cin>>n;
    a[0]=n.length();
    b[0]=n.length();
    for(int i=1;i<=a[0];i++)
    {
        a[i]=n[i-1]-'0';
        b[i]=n[i-1]-'0';
    }
    scad();

    scad1();
    scad1();
   // cout<<a[1]<<" "<<b[1]<<" ";

    prod();
    //n-1 * n-2




    for(int i=1;i<=a[0];i++)
    {
        a[i]=0;
    }
    a[0]=1;
    a[1]=2;

    prod();

    //n-1 n-2 2
    for(int i=1;i<=b[0];i++)
    {
        rez[i]=b[i];
        b[i]=0;
    }
    rez[0]=b[0];
    for(int i=1;i<=n.length();i++)
    {
        b[i]=n[i-1]-'0';

    }
    b[0]=n.length();
    //b=n;
     for(int i=1;i<=a[0];i++)
    {
        a[i]=0;
    }
    a[0]=1;
    a[1]=4;

    prod();

    sum();
    for(int i=1;i<=rez[0];i++){
        cout<<rez[1-i+rez[0]];

    }







    return 0;
}