| Task: | 3-sum |
| Sender: | kkivimaki |
| Submission time: | 2020-09-07 00:34:48 +0300 |
| Language: | C++ (C++11) |
| Status: | COMPILE ERROR |
Compiler report
input/code.cpp:46:11: error: '::main' must return 'int'
void main() {
^
input/code.cpp: In function 'int main()':
input/code.cpp:51:20: error: invalid conversion from 'void*' to 'int*' [-fpermissive]
int *d = malloc(sizeof(int) * n);
~~~~~~^~~~~~~~~~~~~~~~~
input/code.cpp:53:9: error: return-statement with no value, in function returning 'int' [-fpermissive]
return;
^~~~~~
input/code.cpp:55:9: error: return-statement with no value, in function returning 'int' [-fpermissive]
return;
^~~~~~
input/code.cpp:49:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
scanf("%d", &n);
~~~~~^~~~~~~~~~
input/code.cpp:58:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
scanf("%d", &d[i]);
~~~~~^~~~~~~~~~~~~Code
#include <stdio.h>
#include <stdlib.h>
int f1(int *d, int n) {
int j = 0;
int m = d[j];
for (int i = 1; i < n; i++) {
if (d[i] > m) {
j = i;
m = d[i];
}
}
return j;
}
int f2(int *d, int n, int m1) {
int j = 0;
int m = d[j];
for (int i = 1; i < n; i++) {
if (i == m1) continue;
if (d[i] > m) {
j = i;
m = d[i];
}
}
return j;
}
int f3(int *d, int n, int m1, int m2) {
int j = 0;
int m = d[j];
for (int i = 1; i < n; i++) {
if (i == m1) continue;
if (i == m2) continue;
if (d[i] > m) {
j = i;
m = d[i];
}
}
return j;
}
void main() {
int n;
scanf("%d", &n);
int *d = malloc(sizeof(int) * n);
if (n < 3)
return;
if (n > 100)
return;
for (int i = 0; i < n; i++)
scanf("%d", &d[i]);
int m1 = f1(d, n);
int m2 = f2(d, n, m1);
int m3 = f3(d, n, m1, m2);
printf("%d %d %d\n", d[m1], d[m2], d[m3]);
}
