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

1055 集体照 更多...

struct  Person
 

函数

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

详细描述

1055 集体照

函数说明

◆ main()

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

在文件 pat.cpp1912 行定义.

1912 {
1913 int n;
1914 int k;
1915 cin >> n >> k;
1916 vector<Person> vec(n);
1917 for(int i = 0; i < n; i++) {
1918 string name;
1919 int height;
1920 cin >> name >> height;
1921 const auto p = Person{name, height};
1922 vec[i] = p;
1923 }
1924 sort(vec.begin(), vec.end());
1925 vector<deque<Person>> deq(k);
1926 for(int i = 0; i < n / k + n % k; i++) {
1927 if(i % 2 == 1) {
1928 deq[k - 1].push_front(vec.back());
1929 } else {
1930 deq[k - 1].push_back(vec.back());
1931 }
1932 vec.pop_back();
1933 }
1934 for(int i = k - 2; i >= 0; i--) {
1935 for(int j = 0; j < n / k; j++) {
1936 if(j % 2 == 1) {
1937 deq[i].push_front(vec.back());
1938 } else {
1939 deq[i].push_back(vec.back());
1940 }
1941 vec.pop_back();
1942 }
1943 }
1944 for(int i = k - 1; i >= 0; i--) {
1945 for(int j = 0; j < deq[i].size(); j++) {
1946 cout << deq[i][j].name;
1947 if(j != deq[i].size() - 1) {
1948 cout << ' ';
1949 }
1950 }
1951 if(i != 0) {
1952 cout << endl;
1953 }
1954 }
1955 return 0;
1956 }
int vec[100010]
Definition: pat.cpp:5095

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

被这些函数引用 TEST().

◆ TEST()

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

在文件 pat_test.cpp838 行定义.

838 {
839 istringstream in("10 3\n"
840 "Tom 188\n"
841 "Mike 170\n"
842 "Eva 168\n"
843 "Tim 160\n"
844 "Joe 190\n"
845 "Ann 168\n"
846 "Bob 175\n"
847 "Nick 186\n"
848 "Amy 160\n"
849 "John 159");
850 auto out = ostringstream();
851 main(in, out);
852 const auto ans = out.str();
853 ASSERT_EQ("Bob Tom Joe Nick\n"
854 "Ann Mike Eva\n"
855 "Tim Amy John",
856 out.str());
857 }
int main(int argc, char **argv)
Definition: main.cpp:5

引用了 main().