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

回答編集履歴

2

追記

2017/10/18 03:40

投稿

退会済みユーザー
answer CHANGED
@@ -2,4 +2,80 @@
2
2
  ```text
3
3
  4
4
4
  1000000000 1000000000 1000000000 1000000000
5
+ ```
6
+
7
+ ---
8
+ 追記:
9
+
10
+ 質問に記載のコードについて変数の型を変えただけですが、手元のgcc環境では動作するようでした。
11
+
12
+ ```bash
13
+ $ g++ -v
14
+ gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)
15
+ $ cat input
16
+ 4
17
+ 1000000000 1000000000 1000000000 1000000000
18
+ $ cat input | ./a.out
19
+ 1000000000000000000
20
+ ```
21
+
22
+ ```C++
23
+ #include <iostream>
24
+ #include <stdlib.h>
25
+ using namespace std;
26
+
27
+ int compar(const long long *val1, const long long *val2);
28
+
29
+ int main(void)
30
+ {
31
+ long long N, i, x = 0, y = 0;
32
+ cin >> N;
33
+ long long A[N];
34
+
35
+ for (i = 0; i < N; i++)
36
+ {
37
+ cin >> A[i];
38
+ }
39
+
40
+ qsort(A, N, sizeof(long long), (int (*)(const void *, const void *))compar);
41
+
42
+ for (i = 0; i < N-1; i++)
43
+ {
44
+ if (A[i] == A[i+1])
45
+ {
46
+ x = A[i];
47
+ i += 2;
48
+ break;
49
+ }
50
+ }
51
+
52
+ for (; i < N-1; i++)
53
+ {
54
+ if (A[i] == A[i+1])
55
+ {
56
+ y = A[i];
57
+ break;
58
+ }
59
+ }
60
+
61
+ cout << x * y << endl;
62
+
63
+ return 0;
64
+ }
65
+
66
+ int compar(const long long *val1, const long long *val2)
67
+ {
68
+ if (*val1 > *val2)
69
+ {
70
+ return -1;
71
+ }
72
+ else if (*val1 == *val2)
73
+ {
74
+ return 0;
75
+ }
76
+ else
77
+ {
78
+ return 1;
79
+ }
80
+ }
5
81
  ```

1

入力例誤りの変更

2017/10/18 03:40

投稿

退会済みユーザー
answer CHANGED
@@ -1,1 +1,5 @@
1
- 例えば入力値が`4 4 5 5 5 5`の場合はどうなるでしょうか。
1
+ 例えば入力値が下記の場合はどうなるでしょうか。
2
+ ```text
3
+ 4
4
+ 1000000000 1000000000 1000000000 1000000000
5
+ ```