标签:sort col turn else max strong i++ div include
第一次碰到这种题,不知所措,题解链接 =》 https://www.cnblogs.com/fu3638/p/7426074.html
#include<bits/stdc++.h> using namespace std; #define maxn 50005 struct Node{int x,y,num;}p[maxn]; int cmp1(Node a,Node b){return a.x<b.x;} int cmp2(Node a,Node b){return a.y<b.y;} int n,m,q; int main(){ int T;cin>>T; for(int tt=1;tt<=T;tt++){ printf("Case %d: ",tt); int sum=0,mid; cin>>n>>m>>q; for(int i=1;i<=q;i++) cin>>p[i].x>>p[i].y>>p[i].num,sum+=p[i].num; mid=sum+1>>1; sort(p+1,p+1+q,cmp1); int tot=0,x=0,y=0; for(int i=1;i<=q;i++){ tot+=p[i].num; if(tot>=mid){ if(sum%2)x=p[i].x;//总数是奇数,那么中位数很好确定 else if(tot==mid)x=(p[i].x+p[i+1].x)/2;//总数是偶数,当前刚好卡在一半的位置 else x=p[i].x; break;} } sort(p+1,p+1+q,cmp2); tot=0; for(int i=1;i<=q;i++){ tot+=p[i].num; if(tot>=mid){ if(sum%2)y=p[i].y;//总数是奇数,那么中位数很好确定 else if(tot==mid)y=(p[i].y+p[i+1].y)/2;//总数是偶数,当前刚好卡在一半的位置 else y=p[i].y; break; } } cout<<x<<" "<<y<<endl; } }
标签:sort col turn else max strong i++ div include
原文地址:https://www.cnblogs.com/zsben991126/p/10759885.html