Advertisement
Guest User

Untitled

a guest
Nov 23rd, 2014
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.96 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4. import java.util.Scanner;
  5.  
  6. class MapEntry<K extends Comparable<K>,E> implements Comparable<K> {
  7.  
  8.     K key;
  9.     E value;
  10.  
  11.     public MapEntry (K key, E val) {
  12.         this.key = key;
  13.         this.value = val;
  14.     }
  15.    
  16.     public int compareTo (K that) {
  17.         @SuppressWarnings("unchecked")
  18.         MapEntry<K,E> other = (MapEntry<K,E>) that;
  19.         return this.key.compareTo(other.key);
  20.     }
  21.  
  22.     public String toString () {
  23.         return "(" + key + "," + value + ")";
  24.     }
  25.    
  26.     public K getKey()
  27.     {
  28.     return key;
  29.     }
  30.    
  31.     public E getValue()
  32.     {
  33.     return value;
  34.     }
  35. }
  36.  
  37. class SLLNode<E> {
  38.     protected E element;
  39.     protected SLLNode<E> succ;
  40.  
  41.     public SLLNode(E elem, SLLNode<E> succ) {
  42.         this.element = elem;
  43.         this.succ = succ;
  44.     }
  45.  
  46.     @Override
  47.     public String toString() {
  48.         return element.toString();
  49.     }
  50. }
  51.  
  52. class CBHT<K extends Comparable<K>, E> {
  53.  
  54.     private SLLNode<MapEntry<K,E>>[] buckets;
  55.  
  56.     @SuppressWarnings("unchecked")
  57.     public CBHT(int m) {
  58.         buckets = (SLLNode<MapEntry<K,E>>[]) new SLLNode[m];
  59.     }
  60.  
  61.     private int hash(K key) {
  62.         return Math.abs(key.hashCode()) % buckets.length;
  63.     }
  64.  
  65.     public SLLNode<MapEntry<K,E>> search(K targetKey) {
  66.         int b = hash(targetKey);
  67.         for (SLLNode<MapEntry<K,E>> curr = buckets[b]; curr != null; curr = curr.succ) {
  68.             if (targetKey.equals(((MapEntry<K, E>) curr.element).key))
  69.                 return curr;
  70.         }
  71.         return null;
  72.     }
  73.  
  74.     public void insert(K key, E val) {      // Insert the entry <key, val> into this CBHT.
  75.         MapEntry<K, E> newEntry = new MapEntry<K, E>(key, val);
  76.         int b = hash(key);
  77.         for (SLLNode<MapEntry<K,E>> curr = buckets[b]; curr != null; curr = curr.succ) {
  78.             if (key.equals(((MapEntry<K, E>) curr.element).key)) {
  79.                 curr.element = newEntry;
  80.                 return;
  81.             }
  82.         }
  83.         buckets[b] = new SLLNode<MapEntry<K,E>>(newEntry, buckets[b]);
  84.     }
  85.  
  86.     public void delete(K key) {
  87.         int b = hash(key);
  88.         for (SLLNode<MapEntry<K,E>> pred = null, curr = buckets[b]; curr != null; pred = curr, curr = curr.succ) {
  89.             if (key.equals(((MapEntry<K,E>) curr.element).key)) {
  90.                 if (pred == null)
  91.                     buckets[b] = curr.succ;
  92.                 else
  93.                     pred.succ = curr.succ;
  94.                 return;
  95.             }
  96.         }
  97.     }
  98.  
  99.     public String toString() {
  100.         String temp = "";
  101.         for (int i = 0; i < buckets.length; i++) {
  102.             temp += i + ":";
  103.             for (SLLNode<MapEntry<K,E>> curr = buckets[i]; curr != null; curr = curr.succ) {
  104.                 temp += curr.element.toString() + " ";
  105.             }
  106.             temp += "\n";
  107.         }
  108.         return temp;
  109.     }
  110.  
  111. }
  112.  
  113. public class Lozinki {
  114.     public static void main (String[] args) throws IOException {
  115.         CBHT<String,String> tabela;
  116.         BufferedReader br = new BufferedReader(new InputStreamReader(
  117.                 System.in));
  118.         int N = Integer.parseInt(br.readLine());
  119.         //---Vie odluchete za goleminata na hesh tabelata----
  120.         tabela = new CBHT<String,String>(N);
  121.         for(int i=1;i<=N;i++){
  122.             String imelozinka = br.readLine();
  123.             String[] pom = imelozinka.split(" ");
  124.             tabela.insert(pom[0], pom[1]);
  125.             //System.out.print(tabela);
  126.         }
  127.         String f=null;
  128.    
  129.         while((f= br.readLine())!=null){
  130.          
  131.                 String []a=f.split(" ");
  132.                 String ime=a[0];
  133.                 String pass=a[1];
  134.                 boolean check=false;
  135.         while(check)
  136.            {            
  137.                 String res=String.valueOf(tabela.search(ime));
  138.                 String []res1=res.split(",");
  139.                 String r1=res1[0];
  140.                 String r2=res1[1];
  141.                 String total=r1+","+r2;
  142.                 String t=ime+" "+pass;
  143.                //System.out.print(total+"\n");
  144.                              
  145.            if(tabela.search(t)!=null)
  146.            {
  147.              System.out.print("Najaven\n");
  148.  
  149.                check=true;
  150.                break;
  151.            }
  152.           System.out.print("Nenajaven\n");
  153.       }
  154.            
  155.              
  156.                                
  157.        }
  158.  
  159.     }
  160.                
  161.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement