|
|
back to boardWho knew Test 11, my program always WA? this my code: import java.io.*; import java.util.*; public class Problem_1147 implements Runnable{ public static void main(String []args){ new Thread(new Problem_1147()).start(); } public void run(){ try{ reader = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in))); //reader = new StreamTokenizer(new BufferedReader(new FileReader("card.out"))); //out = new PrintWriter(new FileWriter("card.out")); solve(); }catch(IOException e){ throw new IllegalStateException(e); } }
final int COLOR_COUNT = 5501; final int N = 400001; int n; int width; int height;
int xPos[] = new int[10001]; int yPos[] = new int[10001];
int color[] = new int[COLOR_COUNT]; int x[] = new int[1001]; int y[] = new int[1001]; int z[] = new int[1001]; int t[] = new int[1001]; int cc[] = new int[1001]; int xc[] = new int[1009]; int yc[] = new int[1009];
short tColor[][] = new short[2002][2002];
StreamTokenizer reader;
PrintWriter out;
int nextInt()throws IOException{ reader.nextToken(); return(int)reader.nval;
}
void solve()throws IOException{
width = nextInt(); height = nextInt(); n = nextInt();
for (int i = 1; i<=n;i++){ x[i] = nextInt(); y[i] = nextInt(); z[i] = nextInt(); t[i] = nextInt();
cc[i] = nextInt(); } x[0] = 0; y[0] = 0; z[0] = width; t[0] = height; cc[0] = 1;
Arrays.fill(xPos,0); Arrays.fill(yPos,0);
for (int i = 0;i <=n ;i++)xPos[x[i]] = xPos[z[i]] = yPos[y[i]] = yPos[t[i]] = 1;
for (int i = 1; i<= width; i++)xPos[i] += xPos[i-1]; for (int i = 1; i<= height; i++)yPos[i] += yPos[i-1];
for (int i = width; i >= 0 ; i-- ) xc[xPos[i]] = i ; for (int i = height; i>= 0 ; i-- ) yc[yPos[i]] = i ;
/* System.out.println("x coords "); for (int i = xPos[0] ; i<=xPos[width];i++)System.out.println(xc[i]); System.out.println("y coords "); for (int i = yPos[0] ; i<=yPos[height];i++)System.out.println(yc[i]); */ for (int i = 0; i<=n;i++){ int i_x = xPos[x[i]]; int j_x = xPos[z[i]]; int i_y = yPos[y[i]]; int j_y = yPos[t[i]]; short c = (short)cc[i]; // System.out.println(i_x +" " +j_x+" " +i_y+" " +j_y); for (int v = i_x; v < j_x; v++){ for (int w = i_y; w < j_y; w++){ tColor[v][w] = c; } } }
Arrays.fill(color, 0); for (int i = xPos[0]; i < xPos[width]; i++){ for (int j = yPos[0]; j < yPos[height]; j++){ color[tColor[i][j]] += (xc[i+1] - xc[i])*(yc[j+1] - yc[j]); } }
for (int i = 1; i<=2500;i++)if (color[i]>0)System.out.println(i+ " "+color[i]); }
} |
|
|