zoukankan      html  css  js  c++  java
  • codeforce 849A

    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, ..., an 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.

    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, ..., an (0 ≤ ai ≤ 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
    3
    1 3 5
    output
    Yes
    input
    5
    1 0 1 5 1
    output
    Yes
    input
    3
    4 3 1
    output
    No
    input
    4
    3 9 9 3
    output
    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.

     

    很惭愧,第一次打cf,只做出来这一道题。题意有点绕,大致就是问能不能把一个序列分成 奇数个 长度为奇数 且 首尾数字为奇数 的连续子序列。

    当时做的时候,试了几个例子,发现如果n为偶数,无法同时满足个数和长度都为奇数,所以遇到n为偶数直接输出no。

    n为奇数的时候,只要首尾两个数字是奇数就可以满足条件了。

    附代码:

     1 #include <cstdio>
     2 #include <cstring>
     3 const int M = 111;
     4 int nu[M];
     5 int main(){
     6   int n;
     7   scanf("%d",&n);
     8   for(int i=0;i<n;i++){
     9       scanf("%d",&nu[i]);
    10   }
    11   if(nu[0]%2==0||nu[n-1]%2==0||n%2==0)
    12   printf("No
    ");
    13   else printf("Yes
    ");
    14   return 0;
    15 }
    View Code
  • 相关阅读:
    [C# 基础知识系列]专题六:泛型基础篇——为什么引入泛型
    [C#基础知识系列]专题十七:深入理解动态类型
    [C# 基础知识系列]专题九: 深入理解泛型可变性
    C#网络编程系列文章索引
    [C#基础知识系列]专题十:全面解析可空类型
    [C# 基础知识系列]专题十一:匿名方法解析
    [C# 基础知识系列]专题十六:Linq介绍
    VSTO之旅系列(一):VSTO入门
    [C# 网络编程系列]专题七:UDP编程补充——UDP广播程序的实现
    [C# 网络编程系列]专题四:自定义Web浏览器
  • 原文地址:https://www.cnblogs.com/zmin/p/7465918.html
Copyright © 2011-2022 走看看