zoukankan      html  css  js  c++  java
  • Ball

    図のように二股に分かれている容器があります。1 から 10 までの番号が付けられた10 個の玉を容器の開口部 A から落とし、左の筒 B か右の筒 C に玉を入れます。板 D は支点 E を中心に左右に回転できるので、板 D を動かすことで筒 B と筒 C のどちらに入れるか決めることができます。

    開口部 A から落とす玉の並びを与えます。それらを順番に筒 B 又は筒 Cに入れていきます。このとき、筒 B と筒 C のおのおのが両方とも番号の小さい玉の上に大きい玉を並べられる場合は YES、並べられない場合は NO と出力するプログラムを作成してください。ただし、容器の中で玉の順序を入れ替えることはできないものとします。また、続けて同じ筒に入れることができるものとし、筒 B, C ともに 10 個の玉がすべて入るだけの余裕があるものとします。

    Input

    複数のデータセットが与えられます。1行目にデータセット数 N が与えられます。つづいて、N 行のデータセットが与えられます。各データセットに 10 個の番号が左から順番に空白区切りで与えられます。

    Output

    各データセットに対して、YES または NO を1行に出力して下さい。

    Sample Input

    2
    3 1 4 2 5 6 7 8 9 10
    10 9 8 7 6 5 4 3 2 1
    

    Output for the Sample Input

    YES
    NO
    

    题解:简单的模拟一下就好了,a[0], a[1],代表两个通道,如果满足条件则替换当前的值, 如果不满足则标记一下,要是两个都不满足则跳出,输出“NO”

    AC代码:

     1 #include<iostream>
     2 using namespace std;
     3 
     4 int a[15], b[2], flag[2];
     5 
     6 int main()
     7 {
     8     int t;
     9     cin >> t;
    10     while(t--)
    11     {
    12         int is_yes = 1;
    13         b[0] = b[1] = 0;
    14         for(int i = 0; i < 10; i++)
    15             cin >> a[i];
    16         for(int i = 0; i < 10; i++)
    17         {
    18             flag[0] = flag[1] = 0;
    19             for(int j = 0; j < 2; j++)
    20             {
    21                 //cout << "a[i]" << a[i] << endl;
    22                 if(b[j] == 0)
    23                 {
    24                     b[j] = a[i];
    25                     break;
    26                 }
    27                 else if(b[j] < a[i])
    28                 {
    29                     b[j] = a[i];
    30                     break;
    31                 }
    32                 flag[j] = 1;
    33             }
    34             //for(int j = 0; j < 2; j++)
    35                 //cout << "b[" << j <<"] = " << b[j] << endl;
    36             if(flag[1] && flag[0])
    37             {
    38                 cout << "NO" << endl;
    39                 is_yes = 0;
    40                 break;
    41             }
    42         }
    43         if(is_yes)
    44             cout << "YES" << endl;
    45     }
    46 
    47 
    48     return 0;
    49 }
    View Code
    永远渴望,大智若愚(stay hungry, stay foolish)
  • 相关阅读:
    log4j
    JDBCtemplete 模板
    动态代理 aop切面实现事务管理
    spring
    spring mvc 简单实现及相关配置实现
    ssm整合
    Jquery
    Git分布式版本控制系统
    Java web server 基本实现原理
    jvm
  • 原文地址:https://www.cnblogs.com/h-hkai/p/8678645.html
Copyright © 2011-2022 走看看