3618

1 /*
2 模拟,简单
3 */
4 // include file
5 #include <cstdio>
6 #include <cstdlib>
7 #include <cstring>
8 #include <cmath>
9 #include <cctype>
10 #include <ctime>
11
12 #include <iostream>
13 #include <sstream>
14 #include <fstream>
15 #include <iomanip>
16 #include <bitset>
17 #include <strstream>
18
19 #include <algorithm>
20 #include <string>
21 #include <vector>
22 #include <queue>
23 #include <set>
24 #include <list>
25 #include <functional>
26
27 using namespace std;
28
29 // typedef
30 typedef long long LL;
31 typedef unsigned long long ULL;
32
33 //
34 #define read freopen("in.txt","r",stdin)
35 #define write freopen("out.txt","w",stdout)
36 #define FORi(a,b,c) for(int i=(a);i<(b);i+=c)
37 #define FORj(a,b,c) for(int j=(a);j<(b);j+=c)
38
39 #define FF(i,a) for(int i=0;i<(a);i+++)
40 #define FFD(i,a) for(int i=(a)-1;i>=0;i--)
41 #define Z(a) (a<<1)
42 #define Y(a) (a>>1)
43
44 const double eps = 1e-11;
45 const double Pi = acos(-1.0);
46
47 template<class T> inline T sqr(T a){return a*a;}
48 template<class T> inline T TMAX(T x,T y)
49 {
50 if(x>y) return x;
51 return y;
52 }
53 template<class T> inline T TMIN(T x,T y)
54 {
55 if(x<y) return x;
56 return y;
57 }
58 template<class T> inline void SWAP(T &x,T &y)
59 {
60 T t = x;
61 x = y;
62 y = t;
63 }
64 template<class T> inline T MMAX(T x,T y,T z)
65 {
66 return TMAX(TMAX(x,y),z);
67 }
68
69
70 // code begin
71 int T,N;
72 struct node
73 {
74 int dis;
75 int val;
76 friend bool operator<(node a,node b)
77 {
78 return a.dis<b.dis;
79 }
80 };
81 node A[50010];
82 int main()
83 {
84 read;
85 write;
86 while(scanf("%d %d",&T,&N)!=-1)
87 {
88 FORi(0,N,1)
89 {
90 scanf("%d",&A[i].val);
91 A[i].dis = abs(A[i].val);
92 }
93 sort(A,A+N);
94 int ans = 0,tm = 0,pre=0;
95 FORi(0,N,1)
96 {
97 tm += abs(pre-A[i].val);
98 if(tm>=T) break;
99 ans++;
100 pre = A[i].val;
101 }
102 printf("%d\n",ans);
103 }
104 return 0;
105 }
posted @ 2011-03-02 09:01  AC2012  阅读(253)  评论(0编辑  收藏  举报