Advertisement
jovanovski

НП Лаб6 Зад1

Nov 25th, 2012
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.56 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4. import java.util.*;
  5.  
  6. public class Has3sumTest {
  7.     public static void main(String[] args) throws IOException {
  8.         BufferedReader jin = new BufferedReader(
  9.                 new InputStreamReader(System.in));
  10.         int n = Integer.parseInt(jin.readLine());
  11.         String nums[] = jin.readLine().split("\\s+");
  12.         int a[] = new int[n];
  13.         for (int i = 0; i < n; ++i)
  14.             a[i] = Integer.parseInt(nums[i]);
  15.         System.out.println(has3sum(a));
  16.     }
  17.  
  18.     public static boolean has3sum(int a[]) {
  19.         if(a.length<3) return false;
  20.         Set<Integer> set1 = new HashSet<Integer>();
  21.         for(int i=0;i<a.length;i++){
  22.             set1.add(a[i]);
  23.         }
  24.         Iterator<Integer> set1it = set1.iterator();
  25.         Iterator<Integer> set2it = set1.iterator();
  26.         set2it.next();
  27.         while(set1it.hasNext()){
  28.             int br1 = set1it.next();
  29.             while(set2it.hasNext()){
  30.                 int br2 = set2it.next();
  31.                 if(set1.contains(-br1-br2)){
  32.                     return true;
  33.                 }
  34.             }
  35.             set2it = set1.iterator();
  36.         }
  37.        
  38.         return false;
  39.     }
  40.    
  41.     public static boolean has3sumtree(int a[]) {
  42.         if(a.length<3) return false;
  43.         Set<Integer> set1 = new TreeSet<Integer>();
  44.         for(int i=0;i<a.length;i++){
  45.             set1.add(a[i]);
  46.         }
  47.         Iterator<Integer> set1it = set1.iterator();
  48.         Iterator<Integer> set2it = set1.iterator();
  49.         set2it.next();
  50.         while(set1it.hasNext()){
  51.             int br1 = set1it.next();
  52.             while(set2it.hasNext()){
  53.                 int br2 = set2it.next();
  54.                 if(set1.contains(-br1-br2)){
  55.                     return true;
  56.                 }
  57.             }
  58.             set2it = set1.iterator();
  59.         }
  60.        
  61.         return false;
  62.     }
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement