Cod sursă (job #290695)

Utilizator avatar micutu Andrei Vasile Cont Fraudulent micutu IP ascuns
Problemă Bizar (clasele 9-10) Compilator cpp | 1.53 kb
Rundă Arhiva de probleme Status evaluat
Dată 8 mar. 2017 14:52:26 Scor 0
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
ifstream f("bizar.in");
ofstream g("bizar.out");
int i,a[100005],x,j,n,ok;
char ch,cfr[]="0123456789",b[100005];
void bizar(int m,int i)
{
    for(int s=1;s<=n;s++)
        cout<<a[s]<<" ";
    cout<<'\n';
    int j;
    j=i+1;
    int k;
    while(a[j]!=-2)
    {
        if(a[j]==-1)
        {
            while(a[j]==-1)
                {
                    bizar(a[j-1],j);
                }
                j--;
        }
        j++;
    }
    int h;
    h=i;
    for(k=1;k<=m;k++)
    {
        h++;
        if(h==j)
            h=i+1;
    }
    a[i-1]=a[h];
    int FMM;
    FMM=j;
    n--;
    for(k=i;k<=j;k++)
        {
            a[k]=a[FMM+1];
            FMM++;
            n--;
        }
}
int main()
{
    f.get(b,100005);
    for(j=0;j<strlen(b);j++)
    {
        if(b[j]=='(')
            a[++i]=-1;
            else
        if(b[j]==')')
            a[++i]=-2;
            else
        if(strchr(cfr,b[j]))
        {
            x=(int)b[j]-48;
            j++;
            while(strchr(cfr,b[j]))
            {
                x=x*10+(int)b[j];
                j++;
            }
            j--;
            a[++i]=x;
        }
    }
    n=i;
    ok=1;
    if(i==1)
        g<<a[1];
    else
    {
        for(i=1;i<=n;i++)
        {
            if(a[i]==-1)
            {
                bizar(a[i-1],i);
            }
        }
        g<<a[1];
    }


    return 0;
}