我的代码:
#include <iostream>
using namespace std;
int main()
{int a, b, c; //a表示内向,b表示外向,c表示无所谓cin >> a >> b >> c; //读入数 if (b % 3 == 0 || 3-b % 3 <= c) //如果外向的人能够3人组成若干组,或者剩下的外向人有人与其配对{cout << a + (b + c) / 3 + (((b + c) % 3) ? 1 : 0) << endl;//满足条件的话,将b和c看成一类,如果对3取余有数,则宿舍再加1}else cout << -1 << endl;//这种情况是,剩下1个外向人,但c只有1个或0个||剩下2外向人,但c只有0个return 0;
}
以前写的代码:
#include <iostream>
using namespace std;
int main()
{int a,b,c;cin>>a>>b>>c;int sum=a;sum+=b/3;b%=3;if(b==2){if(c>=1){sum++;c-=1;sum+=c/3;if(c%3>0){sum++;}}else{cout<<"-1"<<endl;return 0;}} else if(b==1){if(c>=2){sum++;c-=2;sum+=c/3;if(c%3>0){sum++;}}else{cout<<"-1"<<endl;return 0;}}else{sum+=c/3;if(c%3>0){sum++;}}cout<<sum<<endl;return 0;
}
参考(来自本人学长给的题解):