题解 P1994 【有机物燃烧】
KING__Arthur · · 题解
看到就只有三篇题解,来发个题解好了。
用实力证明我的弱小
直接贴代码:
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define N 110
using namespace std;
string ch;//注意系数可能不为一位数(神坑)
int i,l,s,sum1,sum2,sum3,CO,HO;
int main()
{
cin>>ch;
l=ch.size();
while(i<l)//不能等于,深坑QAQ
{
if(ch[i]=='C') //分别判断碳
{
i++;
while(ch[i]>'0'&&ch[i]<='9')
s=s*10+ch[i]-'0',i++;
sum1+=max(1,s);s=0;
}
if(ch[i]=='H') //和氢
{
i++;
while(ch[i]>'0'&&ch[i]<='9')
s=s*10+ch[i]-'0',i++;
sum2+=max(1,s);s=0;
}
if(ch[i]=='O')//和氧的系数
{
i++;
while(ch[i]>'0'&&ch[i]<='9')
s=s*10+ch[i]-'0',i++;
sum3+=max(1,s);s=0;
}
}
//然后都一直乘以2,直到三个数都是整数
if(sum2%2==1||(sum2/2+sum3)%2!=0)
{
sum1*=2;
sum2*=2;
sum3*=2;
}
CO=sum1;
HO=sum2/2;
cout<<CO<<" "<<HO<<endl;
return 0;
}
希望对大家有用。。