P2837 晚餐队列安排

P2837 晚餐队列安排
对程序有新的理解
难度:读懂题&&准确地从题中提取有效信息>设计算法>代码实践
mmp,我看错题啦。
前缀和&&枚举断点即可

 1 #include<queue>
 2 #include<algorithm>
 3 #include<cmath>
 4 #include<ctime>
 5 #include<cstring>
 6 #define inf 2147483647
 7 #define For(i,a,b) for(register int i=a;i<=b;i++)
 8 #define p(a) putchar(a)
 9 #define g() getchar()
10 //by war
11 //2017.10.18
12 using namespace std;
13 int n;
14 int sum[300010];
15 int x;
16 int ans;
17 void in(int &x)
18 {
19     int y=1;
20     char c=g();x=0;
21     while(c<'0'||c>'9')
22     {
23     if(c=='-')
24     y=-1;
25     c=g();
26     }
27     while(c<='9'&&c>='0')x=x*10+c-'0',c=g();
28     x*=y;
29 }
30 void o(int x)
31 {
32     if(x<0)
33     {
34         p('-');
35         x=-x;
36     }
37     if(x>9)o(x/10);
38     p(x%10+'0');
39 }
40 int main()
41 {
42     in(n);
43     For(i,1,n)
44     {
45         in(x);
46         if(x==1)
47         sum[i]=sum[i-1]+1;
48         else
49         sum[i]=sum[i-1];
50     }
51     int ans=inf;
52     for(int i=1;i<=n+1;i++)
53     ans=min(i-1-sum[i-1]+sum[n]-sum[i-1],ans);
54     o(ans);
55      return 0;
56 }
View Code

 

posted @ 2017-10-18 21:09  WeiAR  阅读(242)  评论(0编辑  收藏  举报