社区讨论

WA on #10 ,玄关

P1322logo语言参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@mhjdovnr
此快照首次捕获于
2025/11/04 00:52
4 个月前
此快照最后确认于
2025/11/04 00:52
4 个月前
查看原帖
CPP
#include <iostream>

using namespace std;
typedef long long LL;
LL work(string str)
{
    int i=0;
    for(i;str[i]==' ';i++);
    str=str.substr(i);
    int k=str.find(' ');
    string s1=str.substr(0,k),s2=str.substr(k+1);
    if(s1=="REPEAT")
    {
        
        int j;
        for(j=0;j<s2.size()&&s2[j]!='[';j++);
        string s0=s2.substr(0,j);
        int k2;
        for(k2=s2.size()-1;k2>j&&s2[k2]!=']';k2--);
        string s3=s2.substr(j+1,k2-j-1);
        int bei=1;
        if(s0.size()) bei=stoi(s0);
        //cout << bei ;
        
        string s4=s2.substr(k2+1);
        //cout << s3 << endl << s4 << endl;
        if(s4.size())
        return bei*work(s3)+work(s4.substr(1));
        else return bei*work(s3);
    }
    else if(s1=="FD")
    {
        int k2=s2.find(' ');
        if(k2==-1) k2=s2.size();
        //cout << k2;
        string s3=s2.substr(0,k2);
        LL bei=0;
        if(s3.size()) bei=stoi(s3);
        if(k2<s2.size())
        return bei+work(s2.substr(k2+1));
        else return bei;
    }
    else if(s1=="BK")
    {
        int k2=s2.find(' ');
        if(k2==-1) k2=s2.size();
        //cout << k2;
        string s3=s2.substr(0,k2);
        LL bei=0;
        if(s3.size()) bei=stoi(s3);
        if(k2<s2.size())
        return -1*bei+work(s2.substr(k2+1));
        else return -1*bei;
    }
    else
    {
        
        //puts("ER");
        //cout << s1;
        return 0;
    }
    return 0;
    //cout << s1;
   
}

int main()
{
    
    string str;
    getline(cin,str);
    LL a=work(str);
    a=abs(a);
    cout << a;

    return 0;
}

回复

0 条回复,欢迎继续交流。

正在加载回复...