MZL's chemistry
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 290 Accepted Submission(s): 240
Problem Description
MZL define
F(X)
as the first ionization energy of the chemical element
X
Now he get two chemical elements U,V ,given as their atomic number,he wants to compare F(U) and F(V)
It is guaranteed that atomic numbers belongs to the given set: {1,2,3,4,..18,35,36,53,54,85,86}
It is guaranteed the two atomic numbers is either in the same period or in the same group
It is guaranteed that x≠y
Now he get two chemical elements U,V ,given as their atomic number,he wants to compare F(U) and F(V)
It is guaranteed that atomic numbers belongs to the given set: {1,2,3,4,..18,35,36,53,54,85,86}
It is guaranteed the two atomic numbers is either in the same period or in the same group
It is guaranteed that x≠y
Input
There are several test cases
For each test case,there are two numbers u,v ,means the atomic numbers of the two element
For each test case,there are two numbers u,v ,means the atomic numbers of the two element
Output
For each test case,if
F(u)>F(v)
,print "FIRST BIGGER",else print"SECOND BIGGER"
Sample Input
1 2 5 3
Sample Output
SECOND BIGGER FIRST BIGGER
Source
题意:给你两个原子序列,要你比较他们的第一电离能的大小
PS:化学里面的电离能有规律,我差不多忘记了,就百度了下下
1.随着核电荷数的递增,元素的第一电离能呈现周期性变化。 2.总体上金属元素第一电离能较小非金属元素第一电离能较大。 3.同周期元素第一电离能从左到右有增大的趋势。所以同一周期第一电离能最小的是碱金属元素,最大的是稀有气体元素。 4.同一周期内元素的第一电离能在总体增大的趋势中有些曲折。当外围电子在能量相等的轨道上形成全空(p0, d0, fo)、半满(p3, d5, f7)或全满(p6, d10, f14)结构时,原子的能量较低,元素的第一电离能较大。特例是第二主族的第一电离能大于第三主族,第五主族的第一电离能大于第六主族。 5.同一主族元素从上到下,原子半径增加,有效核电荷增加不多,则原子半径增大的影响起主要作用,第一电离能由大变小,元素的金属性逐渐增强。 6.同一副族第一电离能变化不规则
除了用这么规律,你可以直接查看元素周期表,把第一电离能打个表。。。如下~~
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #define Max(a,b) (a>b?a:b) #define Min(a,b) (a<b?a:b) using namespace std; double s[111]={0,1312,2372.3,520.2,932,800.6, 1086.5,1402.3,1313.9,1681,2080.7,495.8,737.7, 577.5,786.5,1011.8,999.6,1251.2,1520.6 }; int main() { int i,j,k,l; s[35]=1139.9; s[36]=1350.8; s[53]=1008.4; s[54]=1170.4; s[85]=920; s[86]=1037; while(scanf("%d%d",&i,&j)!=EOF) { if(s[i]>s[j])puts("FIRST BIGGER"); else puts("SECOND BIGGER"); } return 0; }