Cod sursă (job #433309)

Utilizator avatar ivddab Ioana Viviana Dabelea ivddab IP ascuns
Problemă Bizar (clasele 9-10) Compilator cpp | 0,75 kb
Rundă Arhiva de probleme Status evaluat
Dată 10 feb. 2019 17:20:00 Scor 100
#include <fstream>
#include <cstring>
#define NM 100006
using namespace std;
ifstream f("bizar.in");
ofstream g("bizar.out");
int i,n,nr,poz,m,r,x,j;
int a[NM],pr[NM];
char s[NM];
int main()
{
    f.get(s,NM);
    i=0; n=strlen(s);
    while(i<n){
        if(s[i]>='0'&&s[i]<='9'){
            nr=0;
            while(s[i]>='0'&&s[i]<='9'){ nr=nr*10+(s[i]-'0'); i++; }
            a[++a[0]]=nr; i--;
        } else
        if(s[i]=='('){ pr[++pr[0]]=a[0]+1; }
          else
        if(s[i]==')'){
            poz=pr[pr[0]--];
            m=a[0]-poz+1; r=a[poz-1]%m;
            if(r==0) x=a[a[0]];
              else   x=a[r+poz-1];
            a[0]=poz-1; a[a[0]]=x;
          }
        i++;
    }
    g<<a[a[0]]<<'\n';
    return 0;
}