如果有足够时间返回,就继续向前走。
以下是我的代码:
#include<iostream>
#include<string>
#define maxn 100007
using namespace std;
int main()
{
long n,m,u,f,d,cnt,ans,r[maxn];
cin>>m>>n>>u>>f>>d;
for(long i=1;i<=n;i++)
{
string s;
cin>>s;
switch(s.at(0))
{
case 'u':r[i]=1;break;
case 'f':r[i]=2;break;
case 'd':r[i]=3;
}
}
// Input
cnt=ans=0;
for(long i=1;i<=n;i++)
if(r[i]==1||r[i]==3)
{
if(cnt+u+d<=m)
{
cnt+=u+d;ans++;
}
else break;
}
else if(r[i]==2)
{
if(cnt+f+f<=m)
{
cnt+=f+f;ans++;
}
else break;
}
cout<<ans<<endl;
// Output
return 0;
}
posted on 2010-10-18 15:01
lee1r 阅读(377)
评论(0) 编辑 收藏 引用 所属分类:
题目分类:基础/模拟