Tasks Details
easy
1.
Triangle
Determine whether a triangle can be built from a given set of edges.
Task Score
93%
Correctness
90%
Performance
100%
An array A consisting of N integers is given. A triplet (P, Q, R) is triangular if 0 ≤ P < Q < R < N and:
- A[P] + A[Q] > A[R],
- A[Q] + A[R] > A[P],
- A[R] + A[P] > A[Q].
For example, consider array A such that:
A[0] = 10 A[1] = 2 A[2] = 5 A[3] = 1 A[4] = 8 A[5] = 20Triplet (0, 2, 4) is triangular.
Write a function:
class Solution { public int solution(int[] A); }
that, given an array A consisting of N integers, returns 1 if there exists a triangular triplet for this array and returns 0 otherwise.
For example, given array A such that:
A[0] = 10 A[1] = 2 A[2] = 5 A[3] = 1 A[4] = 8 A[5] = 20the function should return 1, as explained above. Given array A such that:
A[0] = 10 A[1] = 50 A[2] = 5 A[3] = 1the function should return 0.
Write an efficient algorithm for the following assumptions:
- N is an integer within the range [0..100,000];
- each element of array A is an integer within the range [−2,147,483,648..2,147,483,647].
Copyright 2009–2025 by Codility Limited. All Rights Reserved. Unauthorized copying, publication or disclosure prohibited.
Solution
Programming language used Java 21
Time spent on task 60 minutes
Notes
not defined yet
Code: 13:18:29 UTC,
java,
autosave
// you can also use imports, for example:
// import java.util.*;
// you can write to stdout for debugging purposes, e.g.
// System.out.println("this is a debug message");
import java.util.*;
class Solution {
public int solution(int[] A) {
int ans = 0;
Arrays.sort(A);
for(int i=A.length-1; i>=2; i--){
if(A[i] < A[i-1]+A[i-2])
{
return 1;
}
}
return ans;
}
}
Code: 13:19:03 UTC,
java,
autosave
// you can also use imports, for example:
// import java.util.*;
// you can write to stdout for debugging purposes, e.g.
// System.out.println("this is a debug message");
import java.util.*;
class Solution {
public int solution(int[] A) {
int ans = 0;
Arrays.sort(A);
for(fol i=A.length-1; i>=2; i--){
if(A[i] < A[i-1]+A[i-2])
{
return 1;
}
}
return ans;
}
}
Code: 13:19:18 UTC,
java,
autosave
// you can also use imports, for example:
// import java.util.*;
// you can write to stdout for debugging purposes, e.g.
// System.out.println("this is a debug message");
import java.util.*;
class Solution {
public int solution(float[] A) {
int ans = 0;
Arrays.sort(A);
for(f i=A.length-1; i>=2; i--){
if(A[i] < A[i-1]+A[i-2])
{
return 1;
}
}
return ans;
}
}
Code: 13:19:35 UTC,
java,
verify,
result: Failed
// you can also use imports, for example:
// import java.util.*;
// you can write to stdout for debugging purposes, e.g.
// System.out.println("this is a debug message");
import java.util.*;
class Solution {
public int solution(float[] A) {
int ans = 0;
Arrays.sort(A);
for(int i=A.length-1; i>=2; i--){
if(A[i] < A[i-1]+A[i-2])
{
return 1;
}
}
return ans;
}
}
Analysis
Compile error
exec.java:46: error: incompatible types: int[] cannot be converted to float[] result = (new Solution()).solution ( A ); ^ Note: Some messages have been simplified; recompile with -Xdiags:verbose to get full output 1 error
Code: 13:19:45 UTC,
java,
autosave
// you can also use imports, for example:
// import java.util.*;
// you can write to stdout for debugging purposes, e.g.
// System.out.println("this is a debug message");
import java.util.*;
class Solution {
public int solution(int[] A) {
int ans = 0;
Arrays.sort(A);
for(int i=A.length-1; i>=2; i--){
if(A[i] < A[i-1]+A[i-2])
{
return 1;
}
}
return ans;
}
}
Code: 14:16:17 UTC,
java,
autosave
Code: 14:16:32 UTC,
java,
autosave
// you can also use imports, for example:
// import java.util.*;
// you can write to stdout for debugging purposes, e.g.
// System.out.println("this is a debug message");
import java.util.*;
class Solution {
public int solution(int[] A) {
int ans = 0;
Arrays.sort(A);
for(int i=A.length-1; i>=2; i--){
if(A[i] < A[i-1]+A[i-2])
{
return 1;
}
}
return ans;
}
}
Code: 14:17:13 UTC,
java,
autosave
// you can also use imports, for example:
// import java.util.*;
// you can write to stdout for debugging purposes, e.g.
// System.out.println("this is a debug message");
import java.util.*;
class Solution {
public int solution(int[] A) {
int ans = 0;
A.
Arrays.sort(A);
for(int i=A.length-1; i>=2; i--){
if(A[i] < A[i-1]+A[i-2])
{
return 1;
}
}
return ans;
}
}
Code: 14:17:27 UTC,
java,
verify,
result: Passed
// you can also use imports, for example:
// import java.util.*;
// you can write to stdout for debugging purposes, e.g.
// System.out.println("this is a debug message");
import java.util.*;
class Solution {
public int solution(int[] A) {
int ans = 0;
if(A.length == 0){
return 0;
}
Arrays.sort(A);
for(int i=A.length-1; i>=2; i--){
if(A[i] < A[i-1]+A[i-2])
{
return 1;
}
}
return ans;
}
}
Analysis
Code: 14:17:33 UTC,
java,
verify,
result: Passed
// you can also use imports, for example:
// import java.util.*;
// you can write to stdout for debugging purposes, e.g.
// System.out.println("this is a debug message");
import java.util.*;
class Solution {
public int solution(int[] A) {
int ans = 0;
if(A.length == 0){
return 0;
}
Arrays.sort(A);
for(int i=A.length-1; i>=2; i--){
if(A[i] < A[i-1]+A[i-2])
{
return 1;
}
}
return ans;
}
}
Analysis
Code: 14:17:39 UTC,
java,
final,
score: 
93
// you can also use imports, for example:
// import java.util.*;
// you can write to stdout for debugging purposes, e.g.
// System.out.println("this is a debug message");
import java.util.*;
class Solution {
public int solution(int[] A) {
int ans = 0;
if(A.length == 0){
return 0;
}
Arrays.sort(A);
for(int i=A.length-1; i>=2; i--){
if(A[i] < A[i-1]+A[i-2])
{
return 1;
}
}
return ans;
}
}
Analysis summary
The following issues have been detected: wrong answers.
Analysis
Detected time complexity:
O(N*log(N))
expand all
Correctness tests
1.
0.004 s
OK
2.
0.004 s
OK
3.
0.004 s
OK
4.
0.004 s
OK
5.
0.004 s
OK
6.
0.008 s
OK
1.
0.004 s
OK
2.
0.004 s
OK
3.
0.008 s
OK
4.
0.004 s
OK
5.
0.004 s
OK
6.
0.004 s
OK
1.
0.004 s
OK
2.
0.004 s
OK
3.
0.008 s
OK
4.
0.008 s
OK
5.
0.008 s
OK
6.
0.008 s
OK
1.
0.008 s
OK
2.
0.004 s
OK
3.
0.008 s
OK
4.
0.004 s
OK
5.
0.004 s
OK
6.
0.004 s
OK
1.
0.008 s
WRONG ANSWER,
got 0 expected 1
2.
0.004 s
OK
3.
0.004 s
OK
4.
0.008 s
OK
5.
0.004 s
OK
6.
0.004 s
OK
1.
0.004 s
OK
2.
0.008 s
OK
3.
0.008 s
OK
4.
0.004 s
OK
5.
0.008 s
OK
6.
0.004 s
OK
1.
0.004 s
OK
2.
0.004 s
OK
3.
0.004 s
OK
4.
0.004 s
OK
5.
0.004 s
OK
6.
0.004 s
OK
1.
0.004 s
OK
2.
0.008 s
OK
3.
0.004 s
OK
4.
0.008 s
OK
5.
0.004 s
OK
6.
0.004 s
OK
1.
0.008 s
OK
2.
0.008 s
OK
3.
0.004 s
OK
4.
0.008 s
OK
5.
0.004 s
OK
6.
0.004 s
OK
1.
0.004 s
OK
2.
0.008 s
OK
3.
0.008 s
OK
4.
0.004 s
OK
5.
0.004 s
OK
6.
0.008 s
OK
expand all
Performance tests
1.
0.032 s
OK
2.
0.004 s
OK
3.
0.008 s
OK
4.
0.004 s
OK
5.
0.004 s
OK
6.
0.008 s
OK
1.
0.144 s
OK
2.
0.004 s
OK
3.
0.008 s
OK
4.
0.008 s
OK
5.
0.004 s
OK
6.
0.008 s
OK
1.
0.312 s
OK
2.
0.008 s
OK
3.
0.008 s
OK
4.
0.004 s
OK
5.
0.004 s
OK
6.
0.004 s
OK
1.
0.332 s
OK
2.
0.004 s
OK
3.
0.004 s
OK
4.
0.008 s
OK
5.
0.004 s
OK
6.
0.004 s
OK
1.
0.184 s
OK
2.
0.008 s
OK
3.
0.004 s
OK
4.
0.008 s
OK
5.
0.004 s
OK
6.
0.008 s
OK
1.
0.176 s
OK
2.
0.004 s
OK
3.
0.004 s
OK
4.
0.008 s
OK
5.
0.008 s
OK
6.
0.008 s
OK