Cod sursa(job #2187069)

Utilizator CristeaCristianCristea Cristian CristeaCristian Data 26 martie 2018 10:31:34
Problema Next Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 3.24 kb
#include <fstream>
#include <cstring>
#include <algorithm>
using namespace std;
ifstream fin("next.in");
ofstream fout("next.out");
const int NMAX=1000000;
int a[NMAX+5];
long long d;
void hn_constr(int n,int x[NMAX+5]) {
    memset(x,0,sizeof(x));
    do {
        x[++x[0]]=n%10;
        n=n/10;
    } while(n);
}
void print(int x[]) {
    int i;
    for(i=x[0]; i>=1; i--)
        printf("%d",x[i]);
}
void hn_prod(int a[],int b[],int c[2*NMAX+5]) {
    int i,j,tr,aux;
    memset(c,0,sizeof(c));
    c[0]=a[0]+b[0]-1;
    for(i=1; i<=a[0]; i++)
        for(j=1; j<=b[0]; j++)
            c[i+j-1]+=a[i]*b[j];
    tr=0;
    for(i=1; i<=c[0]; i++) {
        aux=c[i]+tr;
        c[i]=aux%10;
        tr=aux/10;
    }
    while(tr) {
        c[++c[0]]=tr%10;
        tr/=10;
    }
}
void hn_divide(int a[], long long k,int c[NMAX+5 ])
{
    int i,r;
    memset(c,0,sizef(c));
    r=0;
    for(i=a[0];i>=1;i--)
        {
            r=r*10+a[i];
                c[++c[0]]=r%10;
                r/=10;
        }
    int st=1,dr=c[0],aux;
        while(st<=dr)
        {
            aux=c[st];
            c[st]=c[dr];
            c[dr]=aux;
            st++;
            dr--;
        }
    while(c[c[0]]==0 && c[0]>1)
        c[0]--;
}
int main()
{
    char ch;
    int i=1;
    while(1)
    {
        fin>>ch;
        if(ch==' ' || ch=='\n')
            break;
        v[i]=ch;
        i++;
        
    }
    fin>>d;
    
    return 0;
}
/*
#include <cstdio>
#include <algorithm>
#include <cstring>

using namespace std;
const int NMAX=1000;
int a[NMAX+5],b[NMAX+5],c[NMAX+5];
void hn_constr(int n,int x[NMAX+5]) {
    memset(x,0,sizeof(x));
    do {
        x[++x[0]]=n%10;
        n=n/10;
    } while(n);
}
void print(int x[]) {
    int i;
    for(i=x[0]; i>=1; i--)
        printf("%d",x[i]);
}
void hn_adun(int a[],int b[], int c[NMAX+5]) {
    int i,tr,aux;
    memset(c,0,sizeof(c));
    c[0]=max(a[0],b[0]);
    tr=0;
    for(i=1; i<=c[0]; i++) {
        aux=a[i]+b[i]+tr;
        c[i]=aux%10;
        tr=aux/10;
    }
    if(tr)
        c[++c[0]]=tr;
}
void hn_scad(int a[],int b[],int c[NMAX+5]) {
    int i,aux,impr;
    impr=0;
    memset(c,0,sizeof(c));
    c[0]=a[0];
    //hn_cmp
    for(i=1; i<=c[0]; i++) {
        aux=a[i]-b[i]-impr;
        if(aux<0) {
            c[i]=aux+10;
            impr=1;
        } else {
            c[i]=aux;
            impr=0;
        }
        while(c[c[0]]==0 &&c[0]>1)
            c[0]--;
    }
}
void hn_prod(int a[],int b[],int c[2*NMAX+5]) {
    int i,j,tr,aux;
    memset(c,0,sizeof(c));
    c[0]=a[0]+b[0]-1;
    for(i=1; i<=a[0]; i++)
        for(j=1; j<=b[0]; j++)
            c[i+j-1]+=a[i]*b[j];
    tr=0;
    for(i=1; i<=c[0]; i++) {
        aux=c[i]+tr;
        c[i]=aux%10;
        tr=aux/10;
    }
    while(tr) {
        c[++c[0]]=tr%10;
        tr/=10;
    }
}
int main() {
    int n,m,cer;
    scanf("%d%d%d",&cer,&n,&m);
    hn_constr(n,a);
    hn_constr(m,b);
    if(cer==1) {
        hn_adun(a,b,c);
        print(c);
    }
    if(cer==2) {
        hn_scad(a,b,c);
        print(c);
    }
    if(cer==3) {
        hn_prod(a,b,c);
        print(c);
    }
    return 0;
}

*/