原题链接
题意理解失误,思路都是一样的计算边界比较,但边界算错了就尴尬了…我理解中一个字母是不能同时作为两组的成员的,比如说AAA中应该有一对而不是两对,总有一个不算数。而实际上,题目中的AAA就是两对…然后公式就写错了,寄
改了公式就没啥好提的了。
#include<bits/stdc++.h>
using namespace std;
int main()
{
int t;
cin>>t;
while(t--)
{
int a[3],m;
for(int i=0;i<3;i++)
cin>>a[i];
cin>>m;
sort(a,a+3);
int min=a[2]-a[1]-a[0]-1;
if(min<0) min=0;//这步没有感觉也成,题目给的对数总不能是负的吧
int mx=0;
for(int i=0;i<3;i++)
mx+=max(0,a[i]-1);
if(m>=min&&m<=mx) cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
return 0;
}