题目描述
楠楠来到科技馆参加一个网络信息探测试验活动。试验时中间有一个WiFi网络路由器,以路由器为中心半径为R的圆内(包括圆周上)的手机都可以收到网络信号,而圆外的手机就接收不到信号。楠楠拿着手机,一开始在中间,然后每次向左或向右走动一定距离,停下测试一下网络信号。问有多少次测试是可以接收到网络信号的。
例如:R=8米,楠楠一共测试了4次。第一次向左走3米;第二次向左再走4米;第三次向左再走2米;第四次向右再走12米,结果只有第3次测试楠楠是接收不到信号的,其它3次测试都可以接收到网络信号。
输入
第一行,2个正整数R和N。分别表示网络路由器的工作半径和楠楠的测试次数。
第二行,N个整数。第i个整数Di表示楠楠第i次向左或向右移动的距离,如果Di是负整数,则表示楠楠第i次测试是向左移动了|Di|米的距离。如果Di是非负整数,则表示楠楠第i次测试是向右移动了Di米距离。
输出
一个整数。表示楠楠有多少次测试是可以接收到网络信号的。
样例输入
复制样例数据
4 5
2 2 2 -8 -8
样例输出
3
提示
第1、2、4次都半径为4的圆内,所以可以接收信号
10个数据:R,N的范围是[1…100]。每次移动距离的范围是[-100…100]。
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main()
{
int r,n;
scanf("%d %d",&r,&n);
int a[n],i,cnt=0,x=0,y=0;
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
x=y+a[i];
y=x;
if(abs(x)<=r)
cnt++;
}
printf("%d
",cnt);
return 0;
}
想得复杂就gg