JOI 2008 春合宿 day3-1 「Origami」

どうしてもよく分からなかったので、id:JAPLJさんのソースを見た。
予想以上に短くてびっくりした。
うーん座標圧縮いらないとは・・・
勉強になりました〜。

#include<cstdio>
#include<map>
#include<algorithm>
#define rep(i,n) for(int i = 0; i < n; i++)
#define pb push_back
using namespace std;

typedef pair<int,int> P;


int main(){
	int n, a, b, p, q, r, s, x = 0, y;
	map<P,int> m;
	
	scanf("%d%d%d",&n,&a,&b);
	
	rep(i,n){
		scanf("%d%d%d%d",&p, &q, &r, &s);
		
		for(int j = p; j <= r; j++){
			for(int k = q; k <= s; k++){
				m[P(j,k)] ++;
			}
		}
	}
	
	
	for(map<P,int>::iterator it = m.begin(); it != m.end(); it++){
		if((*it).second > x){ x = (*it).second; y = 0;}
		if((*it).second == x) y++;
	}
	
	
	printf("%d\n%d\n", x, y);
	
	return 0;
}