返回信息流苍天啊大地啊!为什么……这是为什么……为什么这样的水题,我都wrong answer
Description
最近xiaoming在912呆得实在是很无聊,他决定干点大事,于是他拉上了dreamzk,实行了北邮前所末有的大计划-简称“代表北邮,冲出地球,走向宇宙”超级无敌计划,他们用最近研究出来的算法,去发射了一枚火星探测器。但是火星上的地型复杂,他们机器人上所装载的人工智能不足以应付,所以他们打算直接控制机器人的运动.
机器人的初始坐标为(x,y),(x轴为东西,y为南北)小明的控制的命令如下n,s,w,e分别表示向北,向南,向西,向东走一步,一个步长为一个单位长度。
Input
多组测试数据。
每次数据一行,格式为 x y control。x,y为整数(绝对值不超过1000000)表示机器人的初始坐标,control为一个不包含空格的由四个方向字母所组成的控制字串,长度不超过1000。
Output
第i组数据输出前,请先输出“Case I:”.
机器人在执行完命令后的坐标位置。
Sample Input
4 2 nnnwwwnnneees
3 5 ssseeessswww
Sample Output
Case 1:
4 7
Case 2:
3 -1
这是一条镜像帖。来源:北邮人论坛 / cpp / #37223同步于 2010/3/29
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
苍天啊大地啊!为什么……这是为什么……为什么这样的水题,我
wysln
2010/3/29镜像同步4 回复
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
#include<stdio.h>
int main()
{
long x=0,y=0;
int i=0,j=0,k=0;
char str[1000]={0};
scanf("%ld %ld %s",&x,&y,str);
while(x!=EOF)
{
k++;
i=0;
while(str[i]!='\0')
{
if(str[i]=='n')
y++;
if(str[i]=='s')
y--;
if(str[i]=='e')
x++;
if(str[i]=='w')
x--;
i++;
}
printf("Case %d:\n",k);
printf("%ld %ld\n",x,y);
for(j=0;j<i;j++)
str[j]=0;
scanf("%d %d %s",&x,&y,str);
}
}
大航海时代
Submit: 478 Accepted:214
Time Limit: 1000MS Memory Limit: 65536K
Description
dalong最近迷上了航海,他梦想成为福赛特那样的冒险家。可他实在运气实在太差了,第一次出海就碰到了一群海盗,我们的故事就从这里开始。
为了活命,dalong只有把自己的老本拿出来孝敬他们喽。Dalong出发前带了很多的金币,他把这些金币分装在了n个钱袋里(编号从1-n)。在贿赂这些海盗前,他得知这些海盗们奉行有福同享,有难同当的原则,所以他们每次抢到钱后都会平分,如果抢到的钱不能平分,那他们就会十分的愤怒并且杀掉那个被抢的人。而如果可以平分,无论钱有多少他们都会十分的高兴并且放掉被抢的人。而dalong显然希望能够活命喽。虽然dalong有n个钱袋,但他必须按顺序从这n个钱袋里取钱,假设正好取到第m个钱袋后金币能够被强盗们平分。那么dalong就不用再取金币了,现在dalong告诉你n个钱袋里的金币,那他最少需要取几个钱袋就可以逃命呢?
Input
多组数据测试,第一行是一个数t(1<=t<=60),表示有t组数据。
每组数据第一行有两个数n(1<=n<=1000), k(1<=k<=2000),分别表示钱袋的总数n,海盗的总数k; 第二行是n个正整数(不大于50),表示每个钱袋的金币数。
Output
每组输出前加一个Case i,表示第i组数据。
如果dalong能够满足海盗的要求,输出他最少需要取几个钱袋。如果dalong不能满足强盗的要求,输出"Bad boy";(输出格式见sample output)
Sample Input
3
4 3
1 4 7 5
3 7
7 2 5
4 11
1 9 2 7
Sample Output
Case 1:
Need 3 bags
Case 2:
Need 1 bag
Case 3:
Bad boy
#include<stdio.h>
int main()
{
int t=0,i,j,bags=1,k,n,row[1000]={0},sum=0;
scanf("%d",&t);
for(i=1;i<=t;i++)
{
scanf("%d %d",&n,&k);
for(j=1;j<=n;j++)
row[j]=0;
for(j=1;j<=n;j++)
scanf("%d",&row[j]);
bags=1;
sum=0;
for(j=1;j<=n;j++)
{
sum=sum+row[j];
if(sum%k!=0)
bags++;
else break;
}
printf("Case %d:\n",i);
if(bags>n) printf("Bad boy\n");
else printf("Need %d bags\n",bags);
}
scanf("%d",&t);
}