Cod sursă (job #675227)

Utilizator avatar superffff Radu Alexandru Gabriel superffff IP ascuns
Problemă Bizar (clasele 9-10) Compilator cpp-32 | 1,01 kb
Rundă Arhiva de probleme Status evaluat
Dată 11 nov. 2022 12:14:30 Scor 100
#include <iostream>
#include <fstream>
#include <vector>
#include <map>
#include <unordered_map>
#include <set>
#include <queue>
#include <stack>
#include <cmath>
#include <cstring>
#include <algorithm>
#include <bitset>
#include <cctype>
using namespace std;
ifstream in("bizar.in");
ofstream out("bizar.out");
int a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,S,t,T,x,y,z,ok,nr,C,poz;
char s[100009];
int st[100009];
int main()
{
    in.getline(s,100005);
    stack<int>par;
   n=strlen(s);
   nr=-1;
   for(i=0;i<n;i++){
      if(isdigit(s[i])){
        st[++nr]=atol(s+i);
        while(isdigit(s[i])){
            i++;
        }
        i--;
      }
      if(s[i]=='('){
            par.push(nr+1);
         }
     if(s[i]==')'){
        h=par.top();
        r=h-1;
        l=nr-h+1;
       if(l>=st[r]) {q=l%st[r];}
       else {q=st[r]%l;}
        if(q==0) {q=l;}
        x=st[h+q-1];
        st[h-1]=x;
        nr=h-1;
        par.pop();
     }
   }
   out<<st[0];
    return 0;
}