比赛 |
EYOI暨SBOI暑假快乐赛4th |
评测结果 |
WWWW |
题目名称 |
锑分解炉 |
最终得分 |
0 |
用户昵称 |
康尚诚 |
运行时间 |
0.000 s |
代码语言 |
C++ |
内存使用 |
0.00 MiB |
提交时间 |
2022-06-28 11:00:38 |
显示代码纯文本
//暴力整不出来,先存着代码
#include<bits/stdc++.h>
using namespace std;
map<string,int> num;
map<string,int> num2;
int gcd(int a,int b)
{
if(b==0)
{
return a;
}
int c=a%b;
return gcd(b,c);
}
int zxgbs(int a,int b)
{
return a*b/gcd(a,b);
}
int zxgb3(int a,int b,int c)
{
return zxgbs(zxgbs(a,b),c);
}
struct node
{
string name;
}yuansu[10001];//记录都有哪几种元素
node fyw[12],scw[12];//记录反应物和生成物的分子名称
int n,m,zxgbz=1,zxgb[10001];
int scwxz[12],fywxs[12];
void peiping()
{
}
int main()
{
freopen("Sbfenjielu.in","r",stdin);
freopen("Sbfenjielu.out","w",stdout);
cin>>n>>m;
int ans=0;//记录已找到的元素种类
for(int i=1;i<=n;i++)
{
string ys="";
bool hvys=false;
cin>>fyw[i].name;
for(int j=0;j<fyw[i].name.length();j++)
{
char c=fyw[i].name[j];
if('A'<=c&&c<='Z')//如果是大写元素符号
{
if(!hvys)//如果之前没有不配数字的元素符号
{
ys+=c;
hvys=true;
}
else//如果上一个元素后没有数字(即原子个数为1)
{
if(!num[ys])//如果之前没有记录过这种元素
{
yuansu[++ans].name=ys;
}
num[ys]++;
ys="";
ys+=c;
}
}
if('a'<=c&&c<='z')//小写字母必须跟在大写字母后面表示整个元素符号
{
ys+=c;
}
if('0'<=c&&c<='9')
{
if(!num[ys])//如果之前没有记录过这种元素
{
yuansu[++ans].name=ys;
}
num[ys]+=(c-'0');
ys="";
hvys=false;
}
}
if(hvys)
{
if(!num[ys])//如果之前没有记录过这种元素
{
yuansu[++ans].name=ys;
}
num[ys]++;
}
}
if(ans>10001)
{
for(int i=1;i<=ans;i++)
{
cout<<"Van+2Rsr+3O2=Sb3O6"<<endl;
}
return 0;
}
//////////////////////////////////////////////////////
for(int i=1;i<=m;i++)
{
string ys="";
bool hvys=false;
cin>>scw[i].name;
for(int j=0;j<scw[i].name.length();j++)
{
char c=scw[i].name[j];
if('A'<=c&&c<='Z')//如果是大写元素符号
{
if(!hvys)//如果之前没有不配数字的元素符号
{
ys+=c;
hvys=true;
}
else//如果上一个元素后没有数字(即原子个数为1)
{
num2[ys]++;
ys="";
ys+=c;
}
}
if('a'<=c&&c<='z')//小写字母必须跟在大写字母后面表示整个元素符号
{
ys+=c;
}
if('0'<=c&&c<='9')
{
num2[ys]+=(c-'0');
ys="";
hvys=false;
}
}
if(hvys)
{
num2[ys]++;
}
}
for(int i=1;i<=ans;i++)
{
// cout<<yuansu[i].name<<" "<<num[yuansu[i].name]<<" "<<num2[yuansu[i].name]<<endl;
zxgb[i]=zxgbs(num[yuansu[i].name],num2[yuansu[i].name]);
}
for(int i=1;i<=ans;i++)
{
zxgbz=zxgbs(zxgbz,zxgb[i]);
}
cout<<zxgbz;
}