Pagini recente » Cod sursa (job #2813209) | Cod sursa (job #88599) | Cod sursa (job #2813208) | Diferente pentru problema/pioni2 intre reviziile 2 si 4 | Cod sursa (job #3347941)
#include <fstream>
#include <utility>
#define x first
#define y second
#include <algorithm>
using namespace std;
ifstream in("cadrane.in");
ofstream out("cadrane.out");
/** (<=, <=) & (>=, >=) countt **/
/** qwerty - vertical line (aka. x boundd) **/
typedef pair <int, int> pii;
const int nmax = 1e5, maxint = (1 << 30);
int n, maxpoints; pii a[nmax + 2];
int getminpoints(int xx){
int minpoints = maxint;
for(int i = 1, score; i <= n; i++){
pii py = make_pair(xx, a[i].y); score = 0;
for(int j = 1; j <= n; j++){
score += ((a[j].x <= py.x && a[j].y <= py.y) ||
(a[j].x >= py.x && a[j].y >= py.y));
}
minpoints = min(minpoints, score);
}
return minpoints;
}
pii norm[nmax + 2];
void normalizeyy(){
for(int i = 1; i <= n; i++){
norm[i] = make_pair(a[i].y, i);
}
sort(norm + 1, norm + 1 + n);
for(int i = 1, nvs = 0; i <= n; i++){
nvs += (norm[i].x != norm[i].y || i == 1);
a[norm[i].y].y = nvs;
}
return;
}
int main(){
in>>n;
for(int i = 1; i <= n; i++){
in>>a[i].x>>a[i].y;
}
sort(a + 1, a + 1 + n);
normalizeyy();
for(int i = 1; i <= n; i++){
maxpoints = max(maxpoints, getminpoints(a[i].x));
}
out<<maxpoints<<"\n";
return 0;
}