problemscpp
A collection of my answers to algorithm problems in c++.
函数
pat::b::b1045 命名空间参考

1045 快速排序 更多...

函数

int main (istream &cin, ostream &cout)
 
 TEST (b1045, case1)
 

详细描述

1045 快速排序

函数说明

◆ main()

int pat::b::b1045::main ( istream &  cin,
ostream &  cout 
)

在文件 pat.cpp1491 行定义.

1491 {
1492 unsigned n;
1493 cin >> n;
1494 vector<unsigned> vec(n);
1495 vector<unsigned> l_max(n);
1496 vector<unsigned> r_min(n);
1497 unsigned current = 0;
1498 for(unsigned i = 0; i < n; ++i) {
1499 cin >> vec[i];
1500 l_max[i] = current;
1501 current = max(current, vec[i]);
1502 }
1503 current = 1000000001;
1504 for(int i = n - 1; i >= 0; --i) {
1505 r_min[i] = current;
1506 current = min(current, vec[i]);
1507 }
1508 vector<unsigned> ans;
1509 for(unsigned i = 0; i < n; ++i) {
1510 if(vec[i] > l_max[i] && vec[i] < r_min[i]) {
1511 ans.push_back(vec[i]);
1512 }
1513 }
1514 cout << ans.size() << endl;
1515 for(int i = 0; i < ans.size(); i++) {
1516 cout << ans[i];
1517 if(i != ans.size() - 1) {
1518 cout << ' ';
1519 }
1520 }
1521 cout << endl;
1522 return 0;
1523 }
int vec[100010]
Definition: pat.cpp:5095

引用了 pat::a::a7_2::vec.

被这些函数引用 TEST().

◆ TEST()

pat::b::b1045::TEST ( b1045  ,
case1   
)

在文件 pat_test.cpp701 行定义.

701 {
702 istringstream in("5\n"
703 "1 3 2 4 5");
704 auto out = ostringstream();
705 main(in, out);
706 const auto ans = out.str();
707 ASSERT_EQ("3\n"
708 "1 4 5\n",
709 out.str());
710 }
int main(int argc, char **argv)
Definition: main.cpp:5

引用了 main().