回答編集履歴

2

追記

2017/10/18 03:40

投稿

退会済みユーザー
test CHANGED
@@ -7,3 +7,155 @@
7
7
  1000000000 1000000000 1000000000 1000000000
8
8
 
9
9
  ```
10
+
11
+
12
+
13
+ ---
14
+
15
+ 追記:
16
+
17
+
18
+
19
+ 質問に記載のコードについて変数の型を変えただけですが、手元のgcc環境では動作するようでした。
20
+
21
+
22
+
23
+ ```bash
24
+
25
+ $ g++ -v
26
+
27
+ gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)
28
+
29
+ $ cat input
30
+
31
+ 4
32
+
33
+ 1000000000 1000000000 1000000000 1000000000
34
+
35
+ $ cat input | ./a.out
36
+
37
+ 1000000000000000000
38
+
39
+ ```
40
+
41
+
42
+
43
+ ```C++
44
+
45
+ #include <iostream>
46
+
47
+ #include <stdlib.h>
48
+
49
+ using namespace std;
50
+
51
+
52
+
53
+ int compar(const long long *val1, const long long *val2);
54
+
55
+
56
+
57
+ int main(void)
58
+
59
+ {
60
+
61
+ long long N, i, x = 0, y = 0;
62
+
63
+ cin >> N;
64
+
65
+ long long A[N];
66
+
67
+
68
+
69
+ for (i = 0; i < N; i++)
70
+
71
+ {
72
+
73
+ cin >> A[i];
74
+
75
+ }
76
+
77
+
78
+
79
+ qsort(A, N, sizeof(long long), (int (*)(const void *, const void *))compar);
80
+
81
+
82
+
83
+ for (i = 0; i < N-1; i++)
84
+
85
+ {
86
+
87
+ if (A[i] == A[i+1])
88
+
89
+ {
90
+
91
+ x = A[i];
92
+
93
+ i += 2;
94
+
95
+ break;
96
+
97
+ }
98
+
99
+ }
100
+
101
+
102
+
103
+ for (; i < N-1; i++)
104
+
105
+ {
106
+
107
+ if (A[i] == A[i+1])
108
+
109
+ {
110
+
111
+ y = A[i];
112
+
113
+ break;
114
+
115
+ }
116
+
117
+ }
118
+
119
+
120
+
121
+ cout << x * y << endl;
122
+
123
+
124
+
125
+ return 0;
126
+
127
+ }
128
+
129
+
130
+
131
+ int compar(const long long *val1, const long long *val2)
132
+
133
+ {
134
+
135
+ if (*val1 > *val2)
136
+
137
+ {
138
+
139
+ return -1;
140
+
141
+ }
142
+
143
+ else if (*val1 == *val2)
144
+
145
+ {
146
+
147
+ return 0;
148
+
149
+ }
150
+
151
+ else
152
+
153
+ {
154
+
155
+ return 1;
156
+
157
+ }
158
+
159
+ }
160
+
161
+ ```

1

入力例誤りの変更

2017/10/18 03:40

投稿

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