栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

zoj 1551 Cricket Field

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

zoj 1551 Cricket Field

#include<iostream>#include<cstdio>#include<stdlib.h>#include<algorithm> using namespace std;enum {    SIZ = 108,};struct Point{    int x,y;};int num;Point tree[SIZ];struct _cmp_x{    bool operator()(const int&a, const int&b)const{        if(tree[a].x != tree[b].x) return tree[a].x < tree[b].x;        return tree[a].y<tree[b].y;    }}xc;struct _cmp_y{    bool operator()(const int&a, const int&b)const{        if(tree[a].y != tree[b].y) return tree[a].y<tree[b].y;        return tree[a].x < tree[b].x;    }}yc;int W,H;int x[SIZ];int y[SIZ];int wid;Point o;void fun(){    int i,j,k;    int gw, ow;    for(i=0; i<num; i++){        if(i && tree[x[i]].x == tree[x[i-1]].x) continue;        for(j=0; j<num; j++){  if(j &&tree[y[j]].y==tree[y[j-1]].y)     continue; gw = W - tree[x[i]].x; for(k=j+1; k<num; k++){     if( tree[y[k]].y == tree[y[j]].y         ||tree[y[k]].x <= tree[x[i]].x         ||tree[y[k]].x > tree[x[i]].x + gw) continue;     ow = min(gw, tree[y[k]].y-tree[y[j]].y);     gw = min(gw, tree[y[k]].x-tree[x[i]].x);     if(ow > wid){         wid = ow;         o.x = tree[x[i]].x;         o.y = tree[y[j]].y;     } } ow = min(gw, H-tree[y[j]].y); if(ow > wid){     wid = ow;     o.x = tree[x[i]].x;     o.y = tree[y[j]].y; }        }    }    printf("%d %d %dn", o.x, o.y, wid);}int readIn(){    if(scanf("%d%d%d",&num,&W,&H)<0)        return 0;    for(int i=0; i<num; i++){        scanf("%d%d",&tree[i].x, &tree[i].y);        x[i] = y[i] = i;    }    tree[num].x = 0, tree[num].y = 0;    x[num] = y[num] = num;    num++;    wid = o.x = o.y = 0;    sort(x, x+num, xc);    sort(y, y+num, yc);    return 1;}int main(){    while(readIn()>0){        fun();    }    return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/380113.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号