Task: | 3-sum |
Sender: | Kasper Kivimäki |
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]); }