早上一起,扑面是瓢泼的大雨。跨过千山万水,来到纪中门前,毅然以一种大无畏的英雄气概跨进了考场。
面对四道神题。然后,我成功过五关斩六将,A掉了2道题!!!
T1:APPLE
Wexley最近发现了一个古老的屏幕游戏。游戏的屏幕被划分成n列。在屏幕的底端,有一个宽为m列的篮子(m<n)。在游戏过程中,Wexley能左右移动这个篮子, Wexley的操作很犀利,移动是瞬间完成的,但是篮子必须始终都在屏幕中。 苹果从屏幕的顶端落下,每个苹果从n列中的某一列顶端掉落,垂直掉落到屏幕的底端。每个苹果总是在上一个苹果掉落到底端的时候开始掉落。Wexley想要通过移动篮子来接住所有的苹果。起先,篮子在屏幕的最左端。
求出Wexley要接住所有的苹果所需移动的最短距离。
思路:此题略简单,设置左端与右端,然后判断,移动,储蓄即可。
见代码:
#include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using namespace std; int n,m,k,a[21],l=1,r,ans; int main() { //freopen("apple.in","r",stdin); //freopen("apple.out","w",stdout); scanf("%d%d%d",&n,&m,&k); r=m; for(int i=1;i<=k;i++) { scanf("%d",&a[i]); if(a[i]>r) { while(a[i]>r) { ans++; l++; r++; } } while(a[i]<l) { ans++; l--; r--; } } printf("%d",ans); return 0; }