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

質問編集履歴

3

正答例

2020/06/09 11:22

投稿

kaby-lake
kaby-lake

スコア8

title CHANGED
File without changes
body CHANGED
@@ -1,5 +1,5 @@
1
1
  ### 前提・実現したいこと
2
- https://www.hackerrank.com/contests/01022343222/challenges/1-247/problem
2
+ [Hckerrankの問題](https://www.hackerrank.com/contests/01022343222/challenges/1-247/problem)
3
3
  この問題がセグメンテーションエラーとWAが出てしまいます。
4
4
  1<N<30は制約の一つです。
5
5
 
@@ -10,7 +10,7 @@
10
10
  セグメンテーションエラー,Wrong Eroor
11
11
 
12
12
 
13
- ### 該当のソースコード
13
+ ### 該当のソースコード(不正解)
14
14
 
15
15
  ```c++
16
16
  #include <iostream>
@@ -82,5 +82,73 @@
82
82
  ここに問題に対して試したことを記載してください。
83
83
 
84
84
  ### 補足情報(FW/ツールのバージョンなど)
85
- gcc
85
+ gcc(g++コマンド)
86
- ここにより詳細な情報を記載してください。
86
+ ここにより詳細な情報を記載してください。
87
+
88
+ #解決しました。
89
+ - Cの魔法のコストがCkではなくCということに気づきませんでした。
90
+ - セグメンテーションエラーに関しては使われていない配列があったからだと思います。
91
+
92
+
93
+
94
+ ```c++
95
+ #include <iostream>
96
+ using namespace std;
97
+
98
+ int main()
99
+ {
100
+ int N, C, D;
101
+ cin >> N >> C >> D;
102
+
103
+ int A[N], B[N];
104
+
105
+ for (int i = 0; i < N; i++)
106
+ {
107
+ cin >> A[i];
108
+ }
109
+ for (int i = 0; i < N; i++)
110
+ {
111
+ cin >> B[i];
112
+ }
113
+
114
+ int summp = 0;
115
+ int dif = 0;
116
+
117
+ for (int i = 0; i < N; i++)
118
+ {
119
+
120
+ if (A[i] != B[i])
121
+ {
122
+ dif = B[i] - A[i];
123
+
124
+ if (dif < 0)
125
+ {
126
+ dif = -dif;
127
+ }
128
+
129
+ if (dif % 5 != 0)
130
+ {
131
+ summp += dif * D;
132
+ }
133
+
134
+ if (dif % 5 == 0)
135
+ {
136
+ if (C <= dif * D)
137
+ {
138
+ summp += C;
139
+ }
140
+ else
141
+ {
142
+ summp += (D * dif);
143
+ }
144
+ }
145
+ }
146
+ }
147
+
148
+ cout << summp << endl;
149
+
150
+ return 0;
151
+ }
152
+
153
+ ```
154
+ **ご協力いただいた皆様ありがとうございました。**

2

src

2020/06/09 11:22

投稿

kaby-lake
kaby-lake

スコア8

title CHANGED
File without changes
body CHANGED
@@ -6,11 +6,13 @@
6
6
 
7
7
  ### 発生している問題・エラーメッセージ
8
8
  どのような入力でエラー・WAになってしまうか教えていただいきたいです
9
- ```
9
+
10
10
  セグメンテーションエラー,Wrong Eroor
11
- ```
12
11
 
12
+
13
13
  ### 該当のソースコード
14
+
15
+ ```c++
14
16
  #include <iostream>
15
17
  using namespace std;
16
18
 
@@ -73,9 +75,8 @@
73
75
 
74
76
  cout << summp;
75
77
  }
78
+ ```
76
79
 
77
-
78
-
79
80
  ### 試したこと
80
81
 
81
82
  ここに問題に対して試したことを記載してください。

1

コメント追加

2020/06/05 13:47

投稿

kaby-lake
kaby-lake

スコア8

title CHANGED
File without changes
body CHANGED
@@ -1,6 +1,7 @@
1
1
  ### 前提・実現したいこと
2
2
  https://www.hackerrank.com/contests/01022343222/challenges/1-247/problem
3
3
  この問題がセグメンテーションエラーとWAが出てしまいます。
4
+ 1<N<30は制約の一つです。
4
5
 
5
6
 
6
7
  ### 発生している問題・エラーメッセージ
@@ -29,11 +30,11 @@
29
30
  cin >> B[i];
30
31
  }
31
32
 
32
- int summp = 0;
33
+ int summp = 0; //mpの和
33
- int dif = 0;
34
+ int dif = 0; //りんごの差
34
35
  int S = 0;
35
36
 
36
- if (C >= (5 * D))
37
+ if (C >= (5 * D)) //条件に当てはまるならすべてDの魔法
37
38
  {
38
39
  S = 1;
39
40
  }
@@ -45,7 +46,7 @@
45
46
  {
46
47
  dif = B[i] - A[i];
47
48
 
48
- if (dif < 0)
49
+ if (dif < 0)
49
50
  {
50
51
  dif = -dif;
51
52
  }