From b2dea78b8b14c27431d47beb47f14f27d9114909 Mon Sep 17 00:00:00 2001 From: Kirito <1362050620@qq.com> Date: Wed, 8 Jun 2016 09:38:56 +0800 Subject: [PATCH] Create 1058.cpp --- QUSTOJ/1058.cpp | 69 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 QUSTOJ/1058.cpp diff --git a/QUSTOJ/1058.cpp b/QUSTOJ/1058.cpp new file mode 100644 index 0000000..92c11a4 --- /dev/null +++ b/QUSTOJ/1058.cpp @@ -0,0 +1,69 @@ +#include +#include +struct map +{int x; +int y; +int p; +int k; +long long value;}city[100001]; +int n,ex,ey,sum=0; +int cmp1(const void*a,const void *b) +{struct map*c=(struct map*)a; +struct map*d=(struct map*)b; +if(c->x!=d->x)return c->x-d->x; +else +return c->y-d->y; +} + + + + +int cmp2(const void*a,const void *b) +{struct map*c=(struct map*)a; +struct map*d=(struct map*)b; +if(c->y!=d->y)return c->y-d->y; +else +return c->x-d->x; +} + + + + +int searchx() +{int i,add=0; +for(i=1;;i++) +{add+=city[i].value; +if(add>=sum/2) +break;} +return city[i].x; +} + + + + +int searchy() +{int i,add=0; +for(i=1;;i++) +{add+=city[i].value; +if(add>=sum/2) +break;} +return city[i].y; +} + + + + +int main() +{scanf("%d\n",&n); +int i; +for(i=1;i<=n;i++) +{scanf("%d %d %d %d\n",&city[i].x,&city[i].y,&city[i].p,&city[i].k); +city[i].value=city[i].p*city[i].k; +sum+=city[i].value;} +qsort(&city[1],n,sizeof(city[0]),cmp1); +ex=searchx(); +qsort(&city[1],n,sizeof(city[0]),cmp2); +ey=searchy(); +printf("%d %d",ex,ey); +return 0; +}