0
点赞
收藏
分享

微信扫一扫

hdu3 1004 Game On Plane

幺幺零 2022-03-11 阅读 39
c++学习

accode:

#include <stdio.h>
#include <map>
#include <string.h>
#include <math.h>
#include <algorithm>
using namespace std;
typedef long long ll;
const int maxn = 1e5 +10;
map<pair<int, int>, int> mp;
int num[maxn];

int gcd(int a, int b)   //a和b的最大公约数
{
    if(b == 0)
        return a;
    else
        gcd(b, a % b);
}

int main()
{
    int T, n, x1, y1, x2, y2;
    scanf("%d", &T);
    while(T--)
    {
        mp.clear();
        memset(num, 0, sizeof(num));
        scanf("%d", &n);
        for(int i = 1; i <= n; i++)
        {
            scanf("%d%d%d%d", &x1, &y1, & x2, &y2);
            x1 -= x2;
            y1 -= y2;
            int k = gcd(x1, y1);
            x1 /= k;
            y1 /= k;
            mp[make_pair(x1, y1)]++;
        }
        for(auto i : mp)
            for(int j = 1; j <= i.second; j++)
                num[j]++;
        for(int i = 1, j = 1; i <= n; i++)
        {
            if(!num[j]) j++; 
            num[j]--;
            printf("%d\n", i - j);
        }
    }
    
    return 0;
}
举报

相关推荐

0 条评论