美文网首页
ProblemB: A.挑战密室

ProblemB: A.挑战密室

作者: 坠木 | 来源:发表于2019-01-18 12:14 被阅读0次

百行代码,纪念一下,哈哈.

#include<stdio.h>

#include<string>

#include<stack>

#include<iostream>

using namespace std;

int judgement(string s);

int change(char ch);

int main()

{

int k;

scanf("%d",&k);

while(k--){

string str;

cin>>str;

int final=judgement(str);

printf("%04d\n",final);

    }

    return 0;

}

int judgement(string s)

{

int i,sum=0,num,multi=1;

stack<char> st;

for(i=0;i<s.size();i++){

if(s[i]!='=')continue;

else break;

}

i++;

if(s[i]<='9'&&s[i]>='2'){

multi=(int)(s[i]-'0');

i++;

    }

for(i;i<s.size();i++){

if(s[i]=='+') break;

st.push(s[i]);

}

while(!st.empty()){

num=1;

int sumson=0;

if(st.top()>='2'&&st.top()<='9'){

    num=(int)(st.top()-'0');

    st.pop();

    if(st.top()==')'){

    st.pop();

    i++;

    while(st.top()!='('){

    if(st.top()>='A'&&st.top()<='Z')

    sumson+=change(st.top());

    else{

    if(st.top()=='a'){

    st.pop();

    i++;

    if(st.top()=='C') sumson+=40;

    else if(st.top()=='N') sumson+=23;

}

                    else if(st.top()=='l'){

                    st.pop();

                    i++;

                    if(st.top()=='A') sumson+=27;

                    else sumson+=35;

}

else{

st.pop();

                    i++;

                    sumson+=65;

}

}

st.pop();

}

}

else{

if(st.top()>='A'&&st.top()<='Z')

    sumson+=change(st.top());

    else{

    if(st.top()=='a'){

    st.pop();

    if(st.top()=='C') sumson+=40;

    else if(st.top()=='N') sumson+=23;

}

                    else if(st.top()=='l'){

                    st.pop();

                    if(st.top()=='A') sumson+=27;

                    else sumson+=35;

}

else{

st.pop();

                    sumson+=65;

}

}

}

}

else {

if(st.top()>='A'&&st.top()<='Z')

    sumson+=change(st.top());

    else{

    if(st.top()=='a'){

    st.pop();

    if(st.top()=='C') sumson+=40;

    else if(st.top()=='N') sumson+=23;

}

                    else if(st.top()=='l'){

                    st.pop();

                    if(st.top()=='A') sumson+=27;

                    else sumson+=35;

}

else{

st.pop();

                    sumson+=65;

}

}

}

sum+=num*sumson;

st.pop();

}

    return multi*sum;

}

int change(char ch)

{

if(ch=='N') return 14;

else if(ch=='O') return 16;

else if(ch=='C') return 12;

else if(ch=='S') return 32;

else if(ch=='H') return 2;

}

相关文章

  • ProblemB: A.挑战密室

    百行代码,纪念一下,哈哈. #include #include #include #include using n...

  • 有关密室的有穷性

    密室是推理小说中很有挑战性的一个分支,如何完成在密室中的杀人,考验的不是杀人者,而更多的是小说的作家。因为密室的特...

  • 2017年美国大学生数学建模竞赛B题优秀论文解读

    2017年美赛B题赛题 2017MCM ProblemB: Merge After Toll Multi-lane...

  • 长沙惊现皇陵?今年最疯狂的户外冒险密室逃脱,你敢来挑战吗?

    长沙惊现皇陵?今年最疯狂的户外冒险密室逃脱,你敢来挑战吗?

  • A.

    雨落后 天少有的粉晴 瞧雨水上的人们 面目狰狞 而我啊 长呼一气 恭候日光的大驾光临 妩媚玫瑰漫衍在血红色乾坤下 ...

  • A.

    hi- 我是?Anmuling. 第一次知道简书 酷爱喜欢记录的我 爱文字的我 偶然看到这个app. 看到评论都说...

  • a.

    “我爱你这三个字 太片面 局限性太小了” “我要你是我的 我不让你死 你就算是折断了206根骨头 流干了4000毫...

  • 2018日志183

    N年前玩过低版密室逃脱,觉得just so so。今晚挑战了升级版恐怖密室《冥婚》,全程紧紧抓住琪宝和艺敏,从第一...

  • 喜欢都有理由  一室一世界

    因为最近给北京知名的一家连锁密室逃脱俱乐部写软文,体验是必不可少,紧张刺激,好奇心驱使人不断想继续挑战。 密室逃脱...

  • 密室逃脱关卡设计

    密室主题:废弃的科学研究院 密室简介:人类总是希望可以不断地超越自身,用科学作为武器去挑战神的权威而无视这其中蕴含...

网友评论

      本文标题:ProblemB: A.挑战密室

      本文链接:https://www.haomeiwen.com/subject/zlfndqtx.html