Cod sursă (job #716208)

Utilizator avatar ATudorA Aparaschivei Tudor ATudorA IP ascuns
Problemă Bizar (clasele 9-10) Compilator cpp-32 | 1,00 kb
Rundă Arhiva de probleme Status evaluat
Dată 22 apr. 2023 17:21:09 Scor 80
#include <fstream>
#include <stack>
using namespace std;
ifstream f("bizar.in");
ofstream g("bizar.out");
stack <int> st;
int v[100003];
int main()
{
    int nr=0,x;
    char c;
    st.push(-1);
    while(f>>c)
    {
        if(0<=c-'0' && c-'0'<=9)
        {
            nr=nr*10+(c-'0');
        }
        if(c==',')
        {
            st.push(nr);
            nr=0;
        }
        if(c=='(')
        {
            if(nr!=0)
            {
                st.push(nr);
                nr=0;
            }
            st.push(0);
        }
        if(c==')')
        {
            if(nr!=0)
            {
                st.push(nr);
                nr=0;
            }
            nr=0;
            while(st.top()!=0)
            {
                v[nr]=st.top();
                nr++; st.pop();
            }
            st.pop();
            x=st.top(); st.pop();
            st.push(v[(nr-x%nr)%nr]); nr=0;
        }
    }
    g<<st.top();
    return 0;
}