360第二题 求大佬看看对不对
int main() {
int p;
cin >> p;
vector res;
for(int q = 0; q < p; q++)
{
int ans = 0,r,g,b;
vector rgb;
cin >>r>>g>>b;
rgb.push_back(r);
rgb.push_back(g);
rgb.push_back(b);
sort(rgb.begin(),rgb.end());
while((rgb[0]+rgb[1]+rgb[2]) > 2 && (rgb[1]>0))
{
//if(rgb[0] > rgb[1] || rgb[1] > rgb[2])
sort(rgb.begin(),rgb.end());
if(rgb[0] == 1 && rgb[1] == 1 && rgb[2] == 1)
{
ans++;
break;
}
if(rgb[0] == 0)
{
if(rgb[2]/2 >= rgb[1])
ans+= rgb[1];
else
ans += rgb[2]/2;
break;
}
else if(rgb[1] == rgb[2])
{
if((rgb[1]/2) >= rgb[0])
{
ans += rgb[0];
rgb[0] = 0;
rgb[1] -= rgb[0] * 2;
}else
{
int tt = rgb[1]/2;
ans += tt;
rgb[0] -= tt;
rgb[1] -= tt*2;
}
}
else
{
if((rgb[2] - rgb[1])/2 >= rgb[0])
{
ans+= rgb[0];
rgb[2] -= rgb[0]*2;
rgb[0] = 0;
}
else
{
int tt = (rgb[2] - rgb[1]+1)/2;
ans += tt;
rgb[0] -= tt;
rgb[2] -= 2*tt;
}
}
}
res.push_back(ans);
}
for(int q = 0; q < p; q++)
{
cout<<res[q]<<endl;
}
return 0;
}
#实习#
查看5道真题和解析
顺丰集团工作强度 333人发布