//#define MUENCHEN //#define MAGDEBURG #define BREMEN #ifdef MUENCHEN /* Muenchen */ #define GEOXMIN 5295821.0 #define GEOXMAX 5334858.0 #define GEOYMIN 3233408.0 #define GEOYMAX 3270042.0 #endif #ifdef MAGDEBURG /* Magdeburg */ #define GEOXMIN 5305003.0 #define GEOXMAX 5316797.0 #define GEOYMIN 3682236.0 #define GEOYMAX 3704266.0 #endif #ifdef BREMEN /* Bremen */ #define GEOXMIN 5098053.0 #define GEOXMAX 5134674.0 #define GEOYMIN 3784147.0 #define GEOYMAX 3819770.0 #endif #define GEOXSIZE (GEOXMAX - GEOXMIN) #define GEOYSIZE (GEOYMAX - GEOYMIN) #define PICXSIZE (2*768.0) #define PICYSIZE (2*768.0) #include #include int main( int args, char **argv) { unsigned long pic[ (long)(PICXSIZE * (PICYSIZE+10)) ]; char line[1024]; int x, y; double xscale = (PICXSIZE / GEOXSIZE), yscale = (PICYSIZE / GEOYSIZE); double scale = xscale > yscale ? yscale : xscale; memset( pic, 0, sizeof( pic)); while( scanf( "%ld\t%ld\n", &x, &y) == 2) { double myx = x - GEOXMIN, myy = GEOYSIZE - (y - GEOYMIN); if( (x < GEOXMAX) && (x >= GEOXMIN) && (y < GEOYMAX) && (y >= GEOYMIN)) pic[ (long)(((long)(myx * scale)) + ((long)( myy * scale )) * (long)PICXSIZE) ]++; } printf( "P5\n%ld %ld\n255\n", (long)PICXSIZE, (long)PICYSIZE ); for( x = 0; x < PICXSIZE * PICYSIZE; x++) putchar( sqrt( 32*256*256 * pic[ x ])); return 0; }