fork download
  1. #pragma GCC optimize ("Ofast")
  2. #include<bits/stdc++.h>
  3. using namespace std;
  4. template<class S, class T> inline S chmax(S &a, T b){
  5. if(a<b){
  6. a=b;
  7. }
  8. return a;
  9. }
  10. #define main dummy_main
  11. int main(){
  12. return 0;
  13. }
  14. #undef main
  15. int N;
  16. int A[50000];
  17. int dp[50000];
  18. int sm[50001];
  19. int solve(int dep){
  20. int i;
  21. int res = -1073709056;
  22. int tmp = 0;
  23. if(dep >= N){
  24. return 0;
  25. }
  26. if(dp[dep] != -1073709056){
  27. return dp[dep];
  28. }
  29. for(i=(0);i<(3);i++){
  30. if(dep + i >= N){
  31. break;
  32. }
  33. tmp += A[dep + i];
  34. chmax(res, tmp + sm[dep + i + 1] - solve(dep + i + 1));
  35. }
  36. return dp[dep] = res;
  37. }
  38. class Solution{
  39. public:
  40. string stoneGameIII(vector<int>& stone){
  41. int i;
  42. int alice;
  43. int bob;
  44. N = stone.size();
  45. for(i=(0);i<(N);i++){
  46. A[i] = stone[i];
  47. }
  48. sm[N] = 0;
  49. for(i=(N)-1;i>=(0);i--){
  50. sm[i] = sm[i+1] + A[i];
  51. }
  52. for(i=(0);i<(N);i++){
  53. dp[i] = -1073709056;
  54. }
  55. alice = solve(0);
  56. bob = sm[0] - alice;
  57. if(alice > bob){
  58. return "Alice";
  59. }
  60. else if(alice < bob){
  61. return "Bob";
  62. }
  63. else{
  64. return "Tie";
  65. }
  66. }
  67. }
  68. ;
  69. // cLay varsion 20200408-1
  70.  
  71. // --- original code ---
  72. // #define main dummy_main
  73. // {}
  74. // #undef main
  75. //
  76. // int N, A[50000];
  77. // int dp[50000], sm[50001];
  78. //
  79. // int solve(int dep){
  80. // int res = -int_inf, tmp = 0;
  81. // if(dep >= N) return 0;
  82. // if(dp[dep] != -int_inf) return dp[dep];
  83. //
  84. // rep(i,3){
  85. // if(dep + i >= N) break;
  86. // tmp += A[dep + i];
  87. // res >?= tmp + sm[dep + i + 1] - solve(dep + i + 1);
  88. // }
  89. //
  90. // return dp[dep] = res;
  91. // }
  92. //
  93. // class Solution {
  94. // public:
  95. // string stoneGameIII(vector<int>& stone) {
  96. // int alice, bob;
  97. // N = stone.size();
  98. // rep(i,N) A[i] = stone[i];
  99. //
  100. // sm[N] = 0;
  101. // rrep(i,N) sm[i] = sm[i+1] + A[i];
  102. //
  103. // rep(i,N) dp[i] = -int_inf;
  104. // alice = solve(0);
  105. // bob = sm[0] - alice;
  106. //
  107. // return if[alice > bob, "Alice", alice < bob, "Bob", "Tie"];
  108. // }
  109. // };
  110.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu/Scrt1.o: in function `_start':
(.text+0x20): undefined reference to `main'
collect2: error: ld returned 1 exit status
stdout
Standard output is empty