|
发表于 2020-11-21 16:55:15
|
显示全部楼层
本楼为最佳答案
本帖最后由 jackz007 于 2020-11-22 23:06 编辑
- #include <stdio.h>
- int main(void)
- {
- int d[50] , e[50] , f , i , j , k , m , n , s , t ;
- for(f = 0 , s = 0 , m = 0 ;; d[m ++] = t , s += t) {
- scanf("%d" , & t) ;
- if(t == -1) break ;
- }
- if(! (s % 2) && m > 1) {
- for(i = 0 ; i < m ; i ++) {
- for(n = t = 0 , j = i ; j < m && t < s / 2 ; j ++) {
- if(t + d[j] <= s / 2) {
- t += d[j] ;
- e[n ++] = d[j] ;
- }
- }
- if(t && ! (s % t) && s / t == 2) {
- f = 1 ;
- break ;
- }
- }
- }
- if(f) {
- printf("Yes\n") ;
- printf("%d" , e[0]) ;
- for(k = 1 ; k < n ; k ++) printf(" %d" , e[k]) ;
- printf("\n") ;
- } else {
- printf("No\n") ;
- }
- }
复制代码
编译、运行实况
- D:\00.Excise\C>g++ -o x x.c
- D:\00.Excise\C>x
- 2 2 5 4 5 3 8 4 3 4 -1
- Yes
- 5 4 5 3 3
- D:\00.Excise\C>
复制代码 |
|