Codeforces Round #431 (Div. 2) A. Odds and Ends(找规律)

阳光穿透心脏的1/2处 2022-06-09 09:26 220阅读 0赞

A. Odds and Ends

time limit per test

1 second

memory limit per test

256 megabytes

input

standard input

output

standard output

Where do odds begin, and where do they end? Where does hope emerge, and will they ever break?

Given an integer sequence a1, a2, …, a**n of length n. Decide whether it is possible to divide it into an odd number of non-empty subsegments, the each of which has an odd length and begins and ends with odd numbers.

A subsegment is a contiguous slice of the whole sequence. For example, {3, 4, 5} and {1} are subsegments of sequence {1, 2, 3, 4, 5, 6}, while {1, 2, 4} and {7} are not.

Input

The first line of input contains a non-negative integer n (1 ≤ n ≤ 100) — the length of the sequence.

The second line contains n space-separated non-negative integers a1, a2, …, a**n (0 ≤ a**i ≤ 100) — the elements of the sequence.

Output

Output “Yes” if it’s possible to fulfill the requirements, and “No” otherwise.

You can output each letter in any case (upper or lower).

Examples

input

  1. 3
  2. 1 3 5

output

  1. Yes

input

  1. 5
  2. 1 0 1 5 1

output

  1. Yes

input

  1. 3
  2. 4 3 1

output

  1. No

input

  1. 4
  2. 3 9 9 3

output

  1. No

Note

In the first example, divide the sequence into 1 subsegment: {1, 3, 5} and the requirements will be met.

In the second example, divide the sequence into 3 subsegments: {1, 0, 1}, {5}, {1}.

In the third example, one of the subsegments must start with 4 which is an even number, thus the requirements cannot be met.

In the fourth example, the sequence can be divided into 2 subsegments: {3, 9, 9}, {3}, but this is not a valid solution because 2 is an even number.

题意:

给你一个序列,要你分段(只能连续的),要求分成奇数组,而且每组的开头结尾都要为奇数

思路:

一开始我用dfs暴力模拟做的,比赛的时候暂时过了。。。然后比赛结束就华丽得TLE了,因为第20组数据太变态了,然后老刘告诉了这题只要举反例判断一下就行了。。。就是开头为偶数或者结尾为偶数或者总长度为偶数就不符合,否则就符合。。orz

代码:

  1. #include<iostream>
  2. #include<cstring>
  3. #include<stdio.h>
  4. #include<math.h>
  5. #include<string>
  6. #include<stdio.h>
  7. #include<queue>
  8. #include<stack>
  9. #include<map>
  10. #include<vector>
  11. #include<deque>
  12. #include<algorithm>
  13. using namespace std;
  14. #define INF 100861111
  15. #define ll long long
  16. #define eps 1e-7
  17. int main()
  18. {
  19. int i,j,n,x,y;
  20. scanf("%d",&n);
  21. scanf("%d",&x);
  22. for(i=1;i<n;i++)
  23. scanf("%d",&y);
  24. if(n==1)
  25. {
  26. if(x%2)
  27. printf("Yes\n");
  28. else
  29. printf("No\n");
  30. return 0;
  31. }
  32. if(n%2==0||x%2==0||y%2==0)
  33. printf("No\n");
  34. else
  35. printf("Yes\n");
  36. return 0;
  37. }

发表评论

表情:
评论列表 (有 0 条评论,220人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Codeforces Round #556 (Div. 2) A

    题面很简单,思路就是简单贪心,si数组是贮存购买数组,bi数组是贮存出售数组,题面是给你r的货币,让你通过出售和购买来获取最大价值,第一种算法是通过找出bi数组最大值,和si数