zoukankan      html  css  js  c++  java
  • 洛谷 P1994 有机物燃烧

    题目背景

    本来准备弄难点的,还是算了吧

    题目描述

    输入一种有机物,输出与氧气反应化学方程式中CO2和H2O的系数

    输入输出格式

    输入格式:

     

    一行,一个字符串,表示有机物

     

    输出格式:

     

    两个数,分别为CO2和H2O的系数

     

    输入输出样例

    输入样例#1: 复制
    C2H5OH
    输出样例#1: 复制
    2 3

    说明

    只含有C、H、O三种元素

    思路:模拟。

    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    #define MAXN 10000
    using namespace std;
    char s[MAXN];
    int flag1,flag2,flag3;
    int sum,sum1,sum2,sum3;
    int main(){
        scanf("%s",s);
        int len=strlen(s);
        for(int i=0;i<len;i++){
            if(s[i]>='0'&&s[i]<='9'){ sum*=10;sum+=s[i]-'0'; }
            else{
                if(!sum){ sum1+=flag1;sum2+=flag2;sum3+=flag3;flag1=flag2=flag3=0; }
                else{
                    if(flag1)    sum1+=sum,flag1=0;
                    else if(flag2)    sum2+=sum,flag2=0;
                    else if(flag3)    sum3+=sum,flag3=0;sum=0;
                }
                if(s[i]=='C')    flag1=1;
                if(s[i]=='H')    flag2=1;
                if(s[i]=='O')    flag3=1; 
            }
        }
        if(!sum){ sum1+=flag1;sum2+=flag2;sum3+=flag3; }
        else { if(flag1)    sum1+=sum; if(flag2)    sum2+=sum; if(flag3)    sum3+=sum;}
        if(sum2%2!=0)    sum1*=2,sum3*=2;
        else sum2/=2;
        int k=sum1*2+sum2-sum3;
        if(k%2!=0)    cout<<sum1*2<<" "<<sum2*2;
        else cout<<sum1<<" "<<sum2;
    }
    细雨斜风作晓寒。淡烟疏柳媚晴滩。入淮清洛渐漫漫。 雪沫乳花浮午盏,蓼茸蒿笋试春盘。人间有味是清欢。
  • 相关阅读:
    C语言——总结回顾
    C语言——第十四、十五周作业
    题目思路——统计素数并求和
    题目思路——单词长度
    C语言——第七周作业
    C语言——第六周作业
    C语言——第四次作业
    C语言——第三次作业
    C语言——第二次作业
    C语言——第一次作业
  • 原文地址:https://www.cnblogs.com/cangT-Tlan/p/8024859.html
Copyright © 2011-2022 走看看