1 solutions

  • 0
    @ 2025-12-3 16:44:25

    C++ :

    #include<bits/stdc++.h>
    using namespace std;
    int h,w,n;
    struct data{
    	int zhi,hang,lie,x,y;
    }a[100005];
    bool cmp1(data a,data b)
    {
    	return a.hang<b.hang;
    }
    bool cmp2(data a,data b)
    {
    	return a.lie<b.lie;
    }
    bool cmp3(data a,data b)
    {
    	return a.zhi<b.zhi;
    }
    int main()
    {
    	cin>>h>>w>>n;
    	for(int i=1;i<=n;i++)
    	{
    		scanf("%d%d",&a[i].hang,&a[i].lie);
    		a[i].zhi=i;
    	}
    	sort(a+1,a+1+n,cmp1);
    	for(int i=1,j=1;i<=n;i++)
    	{
    		if(a[i].hang==a[i-1].hang) a[i].x=a[i-1].x;
    		else a[i].x=a[i-1].x+1;
    	}
    	sort(a+1,a+1+n,cmp2);
    	for(int i=1;i<=n;i++)
    	{
    		if(a[i].lie==a[i-1].lie) a[i].y=a[i-1].y;
    		else a[i].y=a[i-1].y+1;
    	}	
    	sort(a+1,a+1+n,cmp3);
    	for(int i=1;i<=n;i++)
    		printf("%d %d\n",a[i].x,a[i].y);
        return 0;
    }
    
    • 1

    Information

    ID
    904
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    10
    Tags
    # Submissions
    1
    Accepted
    1
    Uploaded By