Pagini recente » Cod sursa (job #627490) | Cod sursa (job #3269727) | Cod sursa (job #458015) | Cod sursa (job #3161951) | Cod sursa (job #3287061)
import java.io.*;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
public static class MyScanner implements Closeable {
BufferedReader br;
StringTokenizer st;
public MyScanner(String file) throws FileNotFoundException {
br = new BufferedReader(new InputStreamReader(new FileInputStream(file)), 1 << 16);
}
String next() {
while (st == null || !st.hasMoreElements()) {
try {
st = new StringTokenizer(br.readLine());
} catch (IOException e) {
e.printStackTrace();
}
}
return st.nextToken();
}
int nextInt() {
return Integer.parseInt(next());
}
long nextLong() {
return Long.parseLong(next());
}
double nextDouble() {
return Double.parseDouble(next());
}
String nextLine(){
String str = "";
try {
str = br.readLine();
} catch (IOException e) {
e.printStackTrace();
}
return str;
}
@Override
public void close() throws IOException {
br.close();
}
}
public static void main(String[] args) throws IOException {
try (MyScanner scanner = new MyScanner("nrtri.in");
PrintWriter pw = new PrintWriter(new FileOutputStream("nrtri.out"))) {
int N = scanner.nextInt();
int[] v = new int[N+1];
for (int i = 1; i <= N; i++) {
v[i] = scanner.nextInt();
}
Arrays.sort(v);
int count = 0;
for (int a = 1; a <= N - 2; a++) {
for (int b = a + 1; b <= N - 1; b++) {
for (int c = b + 1; c <= N; c++) {
int t = v[a] + v[b];
int r = Arrays.binarySearch(v, c, N+1, t);
if (r >= 0) {
count += r - c + 1;
} else {
r = -(r+1);
count += r - c;
}
}
}
}
pw.println(count);
}
}
}