diff --git a/VIJOS/1036_ZERO时の魔王.cpp b/VIJOS/1036_ZERO时の魔王.cpp new file mode 100644 index 0000000..37cf885 --- /dev/null +++ b/VIJOS/1036_ZERO时の魔王.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; +}