Guest User

CH15 Artiste

a guest
Jun 20th, 2011
1,683
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.70 KB | None | 0 0
  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.  */
  14.  
  15. public class AlfonsoArtiste
  16. {
  17.     private static int[][] initCanvas( int width, int height )
  18.     {
  19.         int[][] canvas = new int[width][height];
  20.        
  21.         for ( int i = 0; i < width; i++ )
  22.         {
  23.             for ( int j = 0; j < height; j++ )
  24.             {
  25.                 canvas[i][j] = 1;
  26.             }
  27.         }
  28.        
  29.         return canvas;
  30.     }
  31.    
  32.     private static void drawRectangle( int[][] canvas, int xstart, int ystart, int xend, int yend, int color )
  33.     {
  34.         for ( int i = xstart; i < xend; i++ )
  35.         {
  36.             for ( int j = ystart; j < yend; j++ )
  37.             {
  38.                 canvas[i][j] = color;
  39.             }
  40.         }
  41.     }
  42.    
  43.     private static String countColors( int[][] canvas, int width, int height )
  44.     {
  45.         SortedMap<Integer, Integer> freqs = new TreeMap<Integer, Integer>();
  46.        
  47.         for ( int i = 0; i < width; i++ )
  48.         {
  49.             for ( int j = 0; j < height; j++ )
  50.             {
  51.                 int color = canvas[i][j];
  52.                
  53.                 if ( !freqs.containsKey( color ) )
  54.                     freqs.put( color, 1 );
  55.                 else
  56.                 {
  57.                     int freq = freqs.get( color );
  58.                     freqs.put( color, freq + 1 );
  59.                 }
  60.             }
  61.         }
  62.        
  63.         StringBuffer sb = new StringBuffer();
  64.        
  65.         for ( Entry<Integer,Integer> entry : freqs.entrySet() )
  66.         {
  67.             sb.append( entry.getKey() + " " + entry.getValue() + " " );
  68.         }
  69.        
  70.         return sb.toString().trim();
  71.     }
  72.    
  73.     public static void main( String[] args )
  74.     {
  75.         try
  76.         {
  77.             BufferedReader reader = new BufferedReader( new InputStreamReader( System.in ) );
  78.            
  79.             while ( reader.ready() )
  80.             {
  81.                 String line = reader.readLine();
  82.                
  83.                 StringTokenizer st = new StringTokenizer( line, " " );
  84.                
  85.                 int width = Integer.parseInt( st.nextToken() );
  86.                 int height = Integer.parseInt( st.nextToken() );
  87.                 int numberOfColors = Integer.parseInt( st.nextToken() );
  88.                
  89.                 int[][] canvas = initCanvas( width, height );
  90.                
  91.                 for ( int i = 0; i < numberOfColors; i++ )
  92.                 {
  93.                     int xstart = Integer.parseInt( st.nextToken() );
  94.                     int ystart = Integer.parseInt( st.nextToken() );
  95.                     int xend = Integer.parseInt( st.nextToken() );
  96.                     int yend = Integer.parseInt( st.nextToken() );
  97.                     int color = Integer.parseInt( st.nextToken() );
  98.                    
  99.                     drawRectangle( canvas, xstart, ystart, xend, yend, color );                
  100.                 }
  101.                
  102.                 String result = countColors( canvas, width, height );
  103.                
  104.                 System.out.println( result );
  105.             }
  106.         }
  107.         catch ( Exception e )
  108.         {
  109.             System.err.println( "Error en el formato de entrada." );
  110.             e.printStackTrace( System.err );
  111.         }
  112.     }
  113. }
Advertisement
Add Comment
Please, Sign In to add comment