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

  1. 马拉松
更多...

函数

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

详细描述

  1. 马拉松

函数说明

◆ main()

int acwing::acwing1902::main ( istream &  cin,
ostream &  cout 
)

在文件 acwing.cpp6668 行定义.

6668 {
6669 int n;
6670 cin >> n;
6671 vector<pair<int, int>> checkpoints(n);
6672 vector<int> d(n - 1);
6673 for(int i = 0; i < n; i++) {
6674 int x;
6675 int y;
6676 cin >> x >> y;
6677 checkpoints[i] = make_pair(x, y);
6678 }
6679 int sum = 0;
6680 for(int i = 0; i < n - 1; i++) {
6681 const auto &[x1, y1] = checkpoints[i];
6682 const auto &[x2, y2] = checkpoints[i + 1];
6683 d[i] = abs(x2 - x1) + abs(y2 - y1);
6684 sum += d[i];
6685 }
6686 int max_diff = 0;
6687 for(int i = 1; i < n - 1; i++) {
6688 const auto &[x1, y1] = checkpoints[i - 1];
6689 const auto &[x2, y2] = checkpoints[i + 1];
6690 const int dist = abs(x2 - x1) + abs(y2 - y1);
6691 int diff = d[i - 1] + d[i] - dist;
6692 max_diff = max(max_diff, diff);
6693 }
6694 cout << sum - max_diff;
6695 return 0;
6696 }

被这些函数引用 TEST().

◆ TEST()

acwing::acwing1902::TEST ( acwing1902  ,
case1   
)

在文件 acwing_test.cpp3096 行定义.

3096 {
3097 istringstream in("4\n"
3098 "0 0\n"
3099 "8 3\n"
3100 "11 -1\n"
3101 "10 0");
3102 auto out = ostringstream();
3103 main(in, out);
3104 const auto ans = out.str();
3105 ASSERT_EQ("14", ans);
3106 }
int main(int argc, char **argv)
Definition: main.cpp:5

引用了 main().