算法有问题,中午改了
5 Z5 F3 U/ E6 g 0 x& J5 h+ M" X: b9 q, x
#include <iostream>
7 D: j" e- q- {9 B2 g, X7 d0 ^! k#include <vector>
6 M% Y( D+ l, N3 y4 [4 _#include <set>, l: T* j; z6 H( K
#include <iterator>
) n$ @: `+ L* u5 R#include <numeric>
4 O- b1 D0 L" D: q z2 o#include <algorithm>
9 Y w9 ]1 |* i9 w S$ \* @" j4 kint main() {9 a# X. @ K' n9 s G2 I
std::vector<float> v; //v.end()-1是要凑的结果
7 O+ Z- r5 B$ hstd::copy(std::istream_iterator<float>(std::cin), std:: istream_iterator<float>(), std::back_inserter(v));
5 O# ^5 B+ b) v* Z& ?( j) S: Ystd::set<float> s;
3 w7 V" K2 ^( a8 Nstd::vector<float> temp1(v);1 `" C. C0 J+ Z7 o; o
std::vector<float> temp2(v);' r# `: E! j" K
std::vector<float> vv;
* @0 w3 w9 S" P, v8 `: D4 u. S E: z2 rfor(int i(0); i<v.size()-2; ++i) { , |9 t8 p. j9 F) i2 c. `
std:: partial_sum(temp1.begin(), temp1.end() - 1, std::back_inserter(vv));- z! I k( v; z. f7 L6 {. k' M
vv.erase(find(vv.begin(), vv.end(), *temp1.begin()));# l+ I; F# `* ~1 K
for(int j(0); j<temp1.size()-3; ++j) {' j; d0 C. B) M% O+ z
temp2.erase(temp2.begin()+1);
m+ z6 ?7 z! t3 Zstd:: partial_sum(temp2.begin(), temp2.end() - 1, std::back_inserter(vv));
% ~4 x2 F2 l7 v" l3 F( ^8 uvv.erase(find(vv.begin(), vv.end(), *temp2.begin()));0 r6 Y, q) P% `& m8 s0 }
}
$ [) ]% `* ?0 htemp1.erase(temp1.begin());
( \' A& i% {1 ^temp2=temp1;
! `# V7 {* n% m" [- v}
, A! |3 q5 `; |' `% T6 z: q( Estd::copy(vv.begin(), vv.end(), std::inserter(s, s.begin())); 5 k# s$ a! S5 j3 Q- k& c3 a- {. ^: z
s.insert(*(v.end()-1));
3 `! v) Z: T: P6 l# M9 ^8 zstd::copy(s.begin(), s.end(), std:: ostream_iterator<float>(std::cout, " ")); ! V! _" V8 t8 Q
system("pause");
! s" c+ ]: A- ^/ ?8 O! k" p}' g6 e& \! R6 j% ]3 R
# |* Q' ~+ b! A
& J" s: T6 ^; T- B, Z 2 X. n* ^( Y7 i: m1 S0 ^
看看对不对?