Cod sursa(job #1722917)

Utilizator andreigeorge08Sandu Ciorba andreigeorge08 Data 29 iunie 2016 13:10:28
Problema Text Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.11 kb
#include <fstream>
using namespace std;
ifstream fin("cifre5.in");
ofstream fout("cifre5.out");
unsigned long long n,x;
long long prod,s;
int a[24],b[24],optiune;
int M[11]={2,6,2,3,3,4,2,3,1,1};
int T[11]={2,7,2,3,3,4,2,5,1,2};
void Citire()
{
    fin>>optiune>>n;
    fin.close();
}
void Cerinta1()
{
    int i,cnt;
    cnt=0;
    x=n;
    while(x!=0)
    {
        a[++s]=x%10;
        x/=10;
    }
    for(i=s;i>=1;i--)
    {
        if(a[i]==8)cnt+=7;
        if(a[i]==9 || a[i]==6 || a[i]==0)cnt+=6;
        if(a[i]==7)cnt+=3;
        if(a[i]==5 || a[i]==3 || a[i]==2)cnt+=5;
        if(a[i]==4)cnt+=4;
        if(a[i]==1)cnt+=2;
    }
    fout<<cnt<<"\n";
}
void Cerinta2()
{
    int i,j,s1=0;
    s=0;
    while(n!=0)
    {
        b[++s1]=n%10;
        n/=10;
    }
    for(i=s1;i>=1;i--)
    {
        prod=M[b[i]]-1;
        for(j=i-1;j>=1;j--)
        {
            prod=prod*T[b[j]];
        }
        s+=prod;
    }
    fout<<s<<"\n";
}
int main()
{
    Citire();
    if(optiune==1)Cerinta1();
    else if(optiune==2)Cerinta2();
    fout.close();
    return 0;
}