fork(1) download
  1. #define __USE_MINGW_ANSI_STDIO
  2. #define _CRT_SECURE_NO_WARNINGS
  3. #include <bits/stdc++.h>
  4. #include <unordered_set>
  5. #include <unordered_map>
  6.  
  7. using namespace std;
  8.  
  9. typedef long long ll;
  10. typedef long long ull;
  11. typedef pair<ll, ll> ii;
  12.  
  13. #define all(v) ((v).begin()), ((v).end())
  14. #define sz(v) ((int)((v).size()))
  15. #define endl "\n"
  16. #define fx(n) fixed<<setprecision(n)
  17. #define mk make_pair
  18.  
  19. void fast()
  20. {
  21. ios::sync_with_stdio(NULL);
  22. cout.tie(NULL);
  23. cin.tie(NULL);
  24. #ifndef ONLINE_JUDGE
  25. freopen("output.out", "w", stdout);
  26. freopen("input.in", "r", stdin);
  27. #endif
  28. /*#ifdef ONLINE_JUDGE
  29. //freopen("output.txt", "w", stdout);
  30. freopen("path.in", "r", stdin);
  31. #endif*/
  32. }
  33. const double pi = 2 * acos(0.0);
  34. const ll oo = 0x3f3f3f3f;
  35. const int MOD = 1e9 + 7;
  36. const int nn = 1e5 + 15;
  37. int dx[8] = { 1, -1, 0, 0, 1, -1, 1, -1 };
  38. int dy[8] = { 0, 0, -1, 1, -1, 1, 1, -1 };
  39.  
  40. pair<ull, ull> arr[nn];
  41. int main()
  42. {
  43. fast();
  44. ull n, m;
  45. cin >> n >> m;
  46. ull res = 2 * (n*m);
  47. for (int i = 0; i < n; i++)
  48. cin >> arr[i].first >> arr[i].second;
  49. // difference between rows
  50. for (int i = 0; i < n; i++)
  51. {
  52. // add left side of first cell in each row
  53. res += arr[i].first;
  54. // add right side of last cell in each row
  55. res += arr[i].first + (m - 1)*arr[i].second;
  56. // add the difference between every two cells in row
  57. res += (m - 1)*(arr[i].second);
  58. }
  59. // difference between cols
  60. for (int i = 0; i < n - 1; i++)
  61. {
  62. res += m*abs((arr[i].first - arr[i + 1].first));
  63. res += (((m - 1)*m) / 2)*abs((arr[i].second - arr[i + 1].second));
  64. }
  65. res += (m)*arr[0].first;
  66. res += ((m*(m - 1)) / 2)*(arr[0].second);
  67. res += (m)*arr[n-1].first;
  68. res += ((m*(m - 1)) / 2)*(arr[n - 1].second);
  69. cout << res << endl;
  70. return 0;
  71. }
Success #stdin #stdout 0s 4540KB
stdin
3 2
1 2
1 1
2 1
stdout
40