本文最后更新于:2020年4月11日 下午

问题简述

  • 给出了向东和向西移动一米的查询。执行所有查询时,输出站立位置。

  • 但是,当不满足$A ≤ di ≤ B$时,请调整为$A$和$B$的接近值。

问题分析

  1. 由于它仅在向东和向西两个方向上移动,因此将一侧移动到负值会更容易。

  2. 限制$di$没有困难,并且当$di= B$时以$di B$处理查询时也没有问题。

  3. 如下图所示,它在无尽的东西方向移动了$N$次。每次给出东西方向和移动距离$d$时,都相应地移动。但是,当$d <A$ 时,它移动$ A$,而当 $d> B$时,它移动$B$。找到最终位置。

  4. 直接模拟它。

$Code$

#include<algorithm>
#include<iostream>
using namespace std;
int main()
{
  int n,a,b;
  cin>>n>>a>>b;
  int now=0;
  for (int i=0; i < n; i++) {
    string s;
    int d;
    cin>>s;
    cin>>d;
    if(d<a)
      d=a;
    else if(d>b)
      d=b;
    if(s=="East")
      {
	now+=d;
      }
    else
      {
	now-=d;
      }
  }
  if(now>0)
    cout<<"East "<<now<<endl;
  else if(now<0)
    cout<<"West "<<-now<<endl;
  else
    cout<<0<<endl;
}

本文在 CC BY-NC-ND 4.0( https://creativecommons.org/licenses/by-nc-nd/4.0/deed.zh )协议 的前提下,禁止超过文章30%字数的摘录(对于不超过文章30%字数的摘录,要求在醒目位置注明原文作者与原文链接),同时,在未经作者本人手写签名许可的情况下,禁止任何形式的全文转载,禁止发布任何基于本文的再创作。

题解 AT1299 【偶然ジェネレータ】 上一篇
题解 AT957 【何しちゃおっかな?】 下一篇
本博客采用 xCss 的 Valine 评论系统,搭配了 Valine-Admin,垃圾评论将会被过滤。所以在评论的时候,请注意您的语言。如果您的评论被过滤但并非垃圾评论,请发邮件到 luosiweimail@gmail.com 进行申诉。