time limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard output
水题 求3个原子是否能构成一个分子使化学键和法。
总共的化学键为(a+b+c)/2个,则只要判断各原子间化学键是否成立即可。
附AC代码:
1 #include<bits/stdc++.h> 2 using namespace std; 3 4 int main(){ 5 int a,b,c; 6 cin>>a>>b>>c; 7 int t=(a+b+c)/2; 8 int ans=0; 9 int a1,a2,a3; 10 int flag=0; 11 for(int i=1;i<a;i++){ 12 a1=i,a3=a-a1,a2=t-a; 13 if(a1+a2==b&&a2+a3==c){ 14 flag=1; 15 break; 16 } 17 } 18 if(flag==0){ 19 for(int i=1;i<b;i++){ 20 a1=i,a2=b-a1,a3=t-b; 21 if(a1+a3==a&&a2+a3==c){ 22 flag=1; 23 break; 24 } 25 } 26 } 27 if(flag==0){ 28 for(int i=1;i<c;i++){ 29 a3=i,a2=c-a3,a1=t-c; 30 if(a1+a3==a&&a2+a1==b){ 31 flag=1; 32 break; 33 } 34 } 35 } 36 if(flag&&a1>=0&&a2>=0&&a3>=0){ 37 cout<<a1<<" "<<a2<<" "<<a3<<endl; 38 } 39 else{ 40 cout<<"Impossible"<<endl; 41 } 42 return 0; 43 }