SHARE
TWEET

CH15 Artiste

a guest Jun 20th, 2011 790 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4. import java.util.SortedMap;
  5. import java.util.StringTokenizer;
  6. import java.util.TreeMap;
  7. import java.util.Map.Entry;
  8.  
  9. /*
  10.  * Tuenti Contest
  11.  * Challenge 15 - Artiste
  12.  * Author: Pedro Antonio Pardal Jimena
  13.  * Email: pardal@alu.uma.es
  14.  */
  15.  
  16. public class AlfonsoArtiste
  17. {
  18.         private static int[][] initCanvas( int width, int height )
  19.         {
  20.                 int[][] canvas = new int[width][height];
  21.                
  22.                 for ( int i = 0; i < width; i++ )
  23.                 {
  24.                         for ( int j = 0; j < height; j++ )
  25.                         {
  26.                                 canvas[i][j] = 1;
  27.                         }
  28.                 }
  29.                
  30.                 return canvas;
  31.         }
  32.        
  33.         private static void drawRectangle( int[][] canvas, int xstart, int ystart, int xend, int yend, int color )
  34.         {
  35.                 for ( int i = xstart; i < xend; i++ )
  36.                 {
  37.                         for ( int j = ystart; j < yend; j++ )
  38.                         {
  39.                                 canvas[i][j] = color;
  40.                         }
  41.                 }
  42.         }
  43.        
  44.         private static String countColors( int[][] canvas, int width, int height )
  45.         {
  46.                 SortedMap<Integer, Integer> freqs = new TreeMap<Integer, Integer>();
  47.                
  48.                 for ( int i = 0; i < width; i++ )
  49.                 {
  50.                         for ( int j = 0; j < height; j++ )
  51.                         {
  52.                                 int color = canvas[i][j];
  53.                                
  54.                                 if ( !freqs.containsKey( color ) )
  55.                                         freqs.put( color, 1 );
  56.                                 else
  57.                                 {
  58.                                         int freq = freqs.get( color );
  59.                                         freqs.put( color, freq + 1 );
  60.                                 }
  61.                         }
  62.                 }
  63.                
  64.                 StringBuffer sb = new StringBuffer();
  65.                
  66.                 for ( Entry<Integer,Integer> entry : freqs.entrySet() )
  67.                 {
  68.                         sb.append( entry.getKey() + " " + entry.getValue() + " " );
  69.                 }
  70.                
  71.                 return sb.toString().trim();
  72.         }
  73.        
  74.         public static void main( String[] args )
  75.         {
  76.                 try
  77.                 {
  78.                         BufferedReader reader = new BufferedReader( new InputStreamReader( System.in ) );
  79.                        
  80.                         while ( reader.ready() )
  81.                         {
  82.                                 String line = reader.readLine();
  83.                                
  84.                                 StringTokenizer st = new StringTokenizer( line, " " );
  85.                                
  86.                                 int width = Integer.parseInt( st.nextToken() );
  87.                                 int height = Integer.parseInt( st.nextToken() );
  88.                                 int numberOfColors = Integer.parseInt( st.nextToken() );
  89.                                
  90.                                 int[][] canvas = initCanvas( width, height );
  91.                                
  92.                                 for ( int i = 0; i < numberOfColors; i++ )
  93.                                 {
  94.                                         int xstart = Integer.parseInt( st.nextToken() );
  95.                                         int ystart = Integer.parseInt( st.nextToken() );
  96.                                         int xend = Integer.parseInt( st.nextToken() );
  97.                                         int yend = Integer.parseInt( st.nextToken() );
  98.                                         int color = Integer.parseInt( st.nextToken() );
  99.                                        
  100.                                         drawRectangle( canvas, xstart, ystart, xend, yend, color );                                    
  101.                                 }
  102.                                
  103.                                 String result = countColors( canvas, width, height );
  104.                                
  105.                                 System.out.println( result );
  106.                         }
  107.                 }
  108.                 catch ( Exception e )
  109.                 {
  110.                         System.err.println( "Error en el formato de entrada." );
  111.                         e.printStackTrace( System.err );
  112.                 }
  113.         }
  114. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top