A. Sum of Three(贪心&构造)

Problem - A - Codeforces

A. Sum of Three(贪心&构造)_第1张图片

解析:

        n不为3的倍数,我们可以取一个1和2出来,并且 n-3 应大于 2,则得出 n > 5

        n为3的倍数,我们可以取一个1和4出来,并且剩余的数 n-5应大于 1,并且n-5 不等于4,得出 n > 6,且 n 不等于 9

#include
using namespace std;
#define int long long
const int N=2e5+5;
int t,n;
signed main(){
	scanf("%lld",&t);
	while(t--){
		scanf("%lld",&n);
		if(n<=6||n==9) puts("NO");
		else{
			if(n%3!=0) printf("YES\n1 2 %lld\n",n-3);
			else printf("YES\n1 4 %lld\n",n-5);
		}
	}
	return 0;
}

你可能感兴趣的:(codeforces,算法,c++,开发语言,c语言,构造,贪心)