Advertisement
Guest User

Za Marjana Petkovska

a guest
Aug 28th, 2014
231
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.24 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4.  
  5. class MapEntry<K extends Comparable<K>,E> implements Comparable<K> {
  6.     K key;
  7.     E value;
  8.  
  9.     public MapEntry (K key, E val) {
  10.         this.key = key;
  11.         this.value = val;
  12.     }
  13.     public int compareTo (K that) {
  14.         @SuppressWarnings("unchecked")
  15.         MapEntry<K,E> other = (MapEntry<K,E>) that;
  16.         return this.key.compareTo(other.key);
  17.     }
  18.     public String toString () {
  19.         return "(" + key + "," + value + ")";
  20.     }
  21. }
  22.  
  23.  
  24. class OBHT<K extends Comparable<K>,E> {
  25.  
  26.     private MapEntry<K,E>[] buckets;
  27.     static final int NONE = -1; // ... distinct from any bucket index.
  28.     @SuppressWarnings({ "rawtypes", "unchecked" })
  29.     private static final MapEntry former = new MapEntry(null, null);
  30.     private int occupancy = 0;
  31.    
  32.     @SuppressWarnings("unchecked")
  33.     public OBHT (int m) {
  34.         buckets = (MapEntry<K,E>[]) new MapEntry[m];
  35.     }
  36.  
  37.     private int hash (K key) {
  38.         return Math.abs(key.hashCode()) % buckets.length;
  39.     }
  40.    
  41.     public MapEntry<K,E> getBucket(int i){
  42.         return buckets[i];
  43.     }
  44.    
  45.     public int search (K targetKey) {
  46.         int b = hash(targetKey); int n_search=0;
  47.         for (;;) {
  48.             MapEntry<K,E> oldEntry = buckets[b];
  49.             if (oldEntry == null)
  50.                 return NONE;
  51.             else if (targetKey.equals(oldEntry.key))
  52.                 return b;
  53.             else{
  54.                 b = (b + 1) % buckets.length;
  55.                 n_search++;
  56.                 if(n_search==buckets.length)
  57.                     return NONE;
  58.             }
  59.         }
  60.     }
  61.  
  62.     public void insert (K key, E val) {
  63.         MapEntry<K,E> newEntry = new MapEntry<K,E>(key, val);
  64.         int b = hash(key); int n_search=0;
  65.        
  66.         for (;;) {
  67.             MapEntry<K,E> oldEntry = buckets[b];
  68.             if (oldEntry == null) {
  69.                 if (++occupancy == buckets.length) {
  70.                     System.out.println("Hash tabelata e polna!!!");
  71.                 }
  72.                 buckets[b] = newEntry;
  73.                 return;
  74.             } else if (oldEntry == former
  75.                     || key.equals(oldEntry.key)) {
  76.                 buckets[b] = newEntry;
  77.                 return;
  78.             } else{
  79.                 b = (b + 1) % buckets.length;
  80.                 n_search++;
  81.                 if(n_search==buckets.length)
  82.                     return;
  83.  
  84.             }
  85.         }
  86.     }
  87.    
  88.     @SuppressWarnings("unchecked")
  89.     public void delete (K key) {
  90.         int b = hash(key); int n_search=0;
  91.         for (;;) {
  92.             MapEntry<K,E> oldEntry = buckets[b];
  93.            
  94.             if (oldEntry == null)
  95.                 return;
  96.             else if (key.equals(oldEntry.key)) {
  97.                 buckets[b] = former;
  98.                 return;
  99.             } else{
  100.                 b = (b + 1) % buckets.length;
  101.                 n_search++;
  102.                 if(n_search==buckets.length)
  103.                     return;
  104.  
  105.             }
  106.         }
  107.     }
  108.  
  109.     public String toString () {
  110.         String temp = "";
  111.         for (int i = 0; i < buckets.length; i++) {
  112.             temp += i + ":";
  113.             if (buckets[i] == null)
  114.                 temp += "\n";
  115.             else if (buckets[i] == former)
  116.                 temp += "former\n";
  117.             else
  118.                 temp += buckets[i] + "\n";
  119.         }
  120.         return temp;
  121.     }
  122. }
  123.  
  124.  
  125. class Zbor implements Comparable<Zbor>{
  126.     String zbor;
  127.  
  128.     public Zbor(String zbor) {
  129.         this.zbor = zbor;
  130.     }
  131.     @Override
  132.     public boolean equals(Object obj) {
  133.         Zbor pom = (Zbor) obj;
  134.         return this.zbor.equals(pom.zbor);
  135.     }
  136.     @Override
  137.     public int hashCode() {
  138.         return zbor.hashCode();
  139.     }
  140.     @Override
  141.     public String toString() {
  142.         return zbor;
  143.     }
  144.     @Override
  145.     public int compareTo(Zbor arg0) {
  146.         return zbor.compareTo(arg0.zbor);
  147.     }
  148. }
  149.  
  150. public class Speluvanje {
  151.     public static void main(String[] args) throws IOException {
  152.           OBHT<Zbor, String> tabela;
  153.         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  154.         int N = Integer.parseInt(br.readLine());
  155.  
  156.         tabela = new OBHT<Zbor, String>(2 * N);
  157.         String rechnik[] = new String[N];
  158.         for (int i = 0; i < N; i++) {
  159.             rechnik[i] = br.readLine();
  160.             String pom[] = rechnik[i].split(" ");
  161.             Zbor z = new Zbor(pom[0]);
  162.             tabela.insert(z, pom[0]);
  163.         }
  164.  
  165.         String tekst = br.readLine();
  166.         String[] pom2 = tekst.split(" ");
  167.         if ((N==0)||(pom2.length==1)) System.out.println("Bravo");
  168.         else {
  169.             int brojac = 0;
  170.             for (int i = 0; i < pom2.length; i++) {
  171.                 if (pom2[i].charAt(0) >= 65&&pom2[i].charAt(0) <= 90) {
  172.                     if (pom2[i].endsWith(".") || pom2[i].endsWith(",") || pom2[i].endsWith("!") || pom2[i].endsWith("?")) {
  173.                         StringBuilder sb = new StringBuilder(pom2[i]);
  174.                         sb.deleteCharAt(sb.length() - 1);
  175.                         pom2[i] = sb.toString();
  176.                     }
  177.                     Zbor zb = new Zbor(pom2[i]);
  178.  
  179.                     String tmp = zb.toString().toLowerCase();
  180.                     String tmp2 = tmp;
  181.                     tmp2 = tmp.substring(0, 1).toUpperCase() + tmp2.substring(1, tmp2.length());
  182.  
  183.                     if (tabela.search(new Zbor(tmp)) != -1) {
  184.                         brojac++;
  185.                     } else {
  186.                         System.out.println(tmp2);
  187.                     }
  188.                 } else {
  189.                     if (pom2[i].endsWith(".") || pom2[i].endsWith(",") || pom2[i].endsWith("!") || pom2[i].endsWith("?")) {
  190.                         StringBuilder sb = new StringBuilder(pom2[i]);
  191.                         sb.deleteCharAt(sb.length() - 1);
  192.                         pom2[i] = sb.toString();
  193.                     }
  194.                     Zbor zb = new Zbor(pom2[i]);
  195.                     if (tabela.search(zb) != -1) {
  196.                         brojac++;
  197.                     } else {
  198.                         System.out.println(pom2[i]);
  199.                     }
  200.                 }
  201.             }
  202.             if(brojac == pom2.length)
  203.             {
  204.                 System.out.println("Bravo");
  205.             }
  206.         }
  207.        
  208.     }
  209. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement