質問するログイン新規登録

質問編集履歴

1

自分の書いたコードを追加しました。これでよかったでしょうか?

2020/05/30 05:59

投稿

XionCode
XionCode

スコア46

title CHANGED
File without changes
body CHANGED
@@ -10,8 +10,63 @@
10
10
  下のリンク先のテストケースを見ていただくとわかる通り、ばらばらにACとWAが出ました。
11
11
 
12
12
  ### 該当のソースコード
13
+ ```C++
14
+ #include <iostream>
15
+ using namespace std;
16
+
17
+ void happiness(int cnt);
18
+ int** pHappiness;
19
+ int* pGroup;
20
+ long long* pHappy;
21
+ long long ans;
22
+ int N;
23
+
24
+ void Happiness(int cnt){
25
+ int preHappy;
26
+ for(int i = 0; i < 3; ++i){
27
+ pGroup[cnt] = i;
28
+ if(cnt == 0) *pHappy = 0;
29
+ if(i == 0) preHappy = 0;
30
+ else *pHappy = *pHappy - preHappy;
31
+
32
+ for(int j = 0; j < cnt; ++j){
33
+ if(pGroup[j] == pGroup[cnt]) preHappy += pHappiness[j][cnt-1];
34
+ }
35
+ *pHappy += preHappy;
36
+
37
+ if(cnt < N-1){
38
+ Happiness(cnt+1);
39
+ }else{
40
+ if(ans < *pHappy) ans = *pHappy;
41
+ }
42
+ }
43
+ *pHappy -= preHappy;
44
+ return;
45
+ }
46
+
47
+ int main(void){
48
+ cin >> N;
49
+ pHappiness = new int*[N-1];
50
+ for(int i = 0; i < N-1; ++i){
51
+ pHappiness[i] = new int[N-1];
52
+ //pHappiness[i][j] = Happiness between i and i+j+1
53
+ for(int j = 0; j+i < N-1; ++j) cin >> pHappiness[i][i+j];
54
+ }
55
+
56
+ int group[N];
57
+
58
+ pHappy = new long long;
59
+ pGroup = group;
60
+ ans = -2147483648;
61
+ Happiness(0);
62
+
63
+ cout << ans << endl;
64
+ }
65
+ ```
66
+ 最終的にこのようなコードで提出しました。
67
+
13
68
  https://atcoder.jp/contests/past201912-open/submissions/13699538
14
- ↑問題のコードのリンクです。最終的にこのようなコードで提出しました
69
+ ↑問題のコードのリンクです。提出結果もこちらです
15
70
 
16
71
  ### 試したこと
17
72
  いくつかACが存在するので、入力された値の特殊な場合をはじきだせてないのが原因だと思います。