邪修大法也能做,真真正正的模拟

#include<iostream>
using namespace std;

signed main()
{
	int n;cin>>n;
	int a,b,c,d,e;
	a = b = c = d = e = 0;
	int up,down,l,r;
	up = down = l = r = 0;
	int ret = 0;
	while(n--)
	{
		int x,y;cin>>x>>y;
		if(x==0&&y==0) e++;
		else if(x>0&&y>0)a++;
		else if(x<0&&y>0)b++;
		else if(x<0&&y<0)c++;
		else if(x>0&&y<0)d++;
		else if(x==0&&y>0)up++;
		else if(x==0&&y<0)down++;
		else if(x<0&&y==0)l++;
		else if(x>0&&y==0)r++;
	}
	while(a&&c)
	{
		a--;c--;
		ret+=2;
	}
	while(b&&d)
	{
		b--;d--;
		ret+=2;
	}
	while(up&&c)
	{
		up--;c--;
		ret+=2;
	}
	while(up&&d)
	{
		up--;d--;
		ret+=2;
	}
	while(down&&a)
	{
		down--;a--;
		ret+=2;
	}
	while(down&&b)
	{
		down--;b--;
		ret+=2;
	}
	while(l&&a)
	{
		l--;a--;
		ret+=2;
	}
	while(l&&d)
	{
		l--;d--;
		ret+=2;
	}
	while(r&&b)
	{
		r--;b--;
		ret+=2;
	}
	while(r&&c)
	{
		r--;c--;
		ret+=2;
	}
	int sum = up+l+r+down;
	while(sum>=2)
	{
		sum-=2;
		ret+=2;
	}
	while(a&&b)
	{
		a--;b--;
		ret++;	
	}	
	while(a&&d)
	{
		a--;d--;
		ret++;
	}
	while(b&&c)
	{
		b--;c--;
		ret++;
	}
	while(c&&d)
	{
		c--;d--;
		ret++;
	}
	ret+=(2*e);
	cout<<ret;
	return 0;
}