首页 > 代码库 > P1290sk抓螃蟹
P1290sk抓螃蟹
背景
sk,zdq想在hzy生日之际送hzy几只螃蟹吃。。。
描述
现有n只螃蟹,每个在一个二维作标上,保证没有任何两个螃蟹重合。sk伸手抓螃蟹 了,他怕螃蟹的攻击,当他捉一只螃蟹时,其他螃蟹都朝这只运动(左边的向右,右边的向左,x作标相同的不动)。当然,螃蟹只会在x方向上横行,每秒一单位 长度。sk捉一只螃蟹一秒钟,当本秒末若某一只螃蟹与msk的手同x作标,sk的行动失败。问:怎样做才能抓完n只螃蟹?
格式
输入格式
输入
第一行:n。
第二行有2*n正整数,相邻两个用一空格分开,第2*i-1和第2*i个数表示编号为i的螃蟹的x,y作标。输入保证按先x后y的递增序排列。
输出格式
输出:
一共n行,每行一个螃蟹编号,表示sk取螃蟹的先后序列。如有多解,输出第一个编号最小的,如果第一个编号相同,输出第二个编号最大的,再相同,输出第三个编号最小的......
样例1
样例输入1[复制]
21 3 4 2
样例输出1[复制]
12
样例2
样例输入2[复制]
110 5
样例输出2[复制]
1
限制
每个测试点一秒
提示
hint
输入数据保证有解...
n<=5000.
0<=所有作标<=2^31-1
本题很简单 我后面才发现原来 一共n行,每行一个螃蟹编号,表示sk取螃蟹的先后序列。如有多解,输出第一个编号最小的,如果第一个编号相同,输出第二个编号最大的,再相同,输出第三个编号最小的......这才是题意 我服了
水题
1 #include<iostream> 2 #include<cstdio> 3 typedef long long ll; 4 using namespace std; 5 struct node 6 { 7 int x,y; 8 }a[5005]; 9 int main()10 {11 int n,i;12 scanf("%d",&n);13 for(i=1;i<=n;i++)14 scanf("%d%d",&a[i].x,&a[i].y);15 for(i=1;i<=n;i++)16 {17 if(i%2!=0)18 printf("%d\n",i/2+1);19 else20 printf("%d\n",n-i/2+1);21 }22 }
P1290sk抓螃蟹
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。