Week2 A - 化学

Week2 Aは-化学
化学反応は以下のアルカングループで、素晴らしいです。

図は、数字の組に続いて、1~6、アルカン基は、それぞれ6個の原子と化学結合5、符号6個の原子を有する、上記の仮定、bが原子と原子Bとの間の化学結合を表します。こうしてライン5 aで、Bは、アルカニルとして記述することができ

あなたの仕事は、パラフィン系カテゴリをスクリーニングすることです。

など何原子の番号付けない、
1 2
2 3
3 4
4 5
5 6

1. 3
2 3
2 4
4 5
5 6
と同じである、本質的に連鎖され、実際には、数の間には関係がありません、あなたが紙の上に描くことができ理解する
入力
グループ数T(1≤T≤200000)データの最初の行を入力します。二つの整数、Bのデータライン(1≤a、b≤6、群当たり5 ≤b)

保証データ入力アルカングループは5の1以上であります

出力
各データ出力ライン、代表アルカニルの英語名

例えば
、入力
2
1 2
2 3
3 4
4 5
5 6
1 4
2 3
3 4
4 5
5 6
出力
n-ヘキサン
-3-メチルペンタン

記録のアレイ使用
の接続の最大数が決定されます

#include<iostream>
using namespace std;
int main(){
	int a;
	cin>>a;
	int b1[5],b2[5];
	int c[7],pp[7];
	for(int i=0;i<a;i++){//输入
		for(int j=0;j<7;j++){c[j]=0;pp[j]=0;
		}
		cin>>b1[0]>>b2[0];
		cin>>b1[1]>>b2[1];
		cin>>b1[2]>>b2[2];
		cin>>b1[3]>>b2[3];
		cin>>b1[4]>>b2[4];
		for(int y=1;y<=6;y++){
			for(int u=0;u<5;u++){
				if(b1[u]==y)c[y]++;
			}
			for(int u=0;u<5;u++){
				if(b2[u]==y)c[y]++;
			}
		} 
		int yy=0;
		int point=0;
		//计算出每个图形中最大连接数yy
		for(int y=1;y<7;y++){
			if(c[y]==4){yy=4;break;
			}else if(c[y]==3){point=y;
				yy++;
			}
		}
		for(int y=1;y<7;y++){
			if(c[y]==1){pp[y]=1;
			}
		}
		int t=0;
		//for(int p=1;p<7;p++)cout<<p<<"p="<<c[p]<<endl;
		//用最大连接数yy判断
		if(yy==4){cout<<"2,2-dimethylbutane"<<endl;
		}else if(yy==2){cout<<"2,3-dimethylbutane"<<endl;
		}else if(yy==1){for(int h=0;h<5;h++){
		//2-methylpentane跟3-methylpentane有同样的最大连接数 要再进行判断
			if(b1[h]==point&&pp[b2[h]]==1){t++;
			}else if(b2[h]==point&&pp[b1[h]]==1){t++;
			}
		}
		if(t==2){cout<<"2-methylpentane"<<endl;
		}else{cout<<"3-methylpentane"<<endl;
		}
		}else if(yy==0){cout<<"n-hexane"<<endl;
		}
	}
} 
リリース元の4件の記事 ウォンの賞賛0 ビュー21

おすすめ

転載: blog.csdn.net/qq_43324189/article/details/104672124