首页 > 其他 > 详细

I don't want to be deducted

时间:2020-03-15 22:39:28      阅读:85      评论:0      收藏:0      [点我收藏+]

Description

Lucy自尊心强,要是某个月的工资比前一个月少了,她就会哭。
现在依次告诉你Lucy未来几个月的薪水(单位:万元),而你是一个来自未来的黑客,你可以改变某一个月公司给她发放的薪水,让她不会因为薪水而哭。
举个例子:你知道了Lucy连续四个月的薪水0 4 2 3你可以改变第二个月的工资为1,那她就不会哭了。

Input

第一行一个整数n(n>0&&n<=12);
第二行n个月的工资(保证都为10以内的非负整数);

Output

你是否能让她不哭;
是,输出YES;
否,输出NO;

Sample Input

4
0 4 2 3

Sample Output

YES




 1 #include<stdio.h>
 2 int a[103];
 3 int main(){
 4     int n;
 5     scanf("%d",&n);
 6     for(int i=1;i<=n;i++){
 7         scanf("%d",&a[i]);
 8     }
 9     for(int i=1;i<n;i++){
10         if(a[i]>a[i+1]){//如果顺序没有按照升序排列 
11             if(a[i-1]>a[i+1]){//依情况该值 
12                 a[i+1]=a[i];
13             }
14             else{
15                 a[i]=a[i+1];
16             }
17             break;
18         }
19     }
20     for(int i=1;i<n;i++){//改完一个值后,如果发现还有不按顺序的,那么就是NO 
21         if(a[i]>a[i+1]){
22             printf("NO");
23             return 0;
24         }
25     }
26     printf("YES");//都按顺序了就是YES 
27     return 0;
28 }

这道题呢,如果在这一串数里有两个或两个以上的降序过程,也就是像这样的序列

例一:4 3 2             4到3降序了,3到2降序了

例二:1 5 4 2 1    5到4降序了,4到2降序了,2到1降序了

例三:1 9 4 8 3    9到4降序了,8到3降序了 

这样的序列光改一个数是没办法让序列按升序排列的(在这里,我把相等的情况也算作升序排列了),所以这样的情况就是没救了,一定是NO。

那如果所有数都是按升序排列的,那一定就是YES了,

接下来就剩下一种情况,那就是只有一个降序过程的序列,像这样:

例一:4 1 3      4到1是降序

例二:3 4 2 3     4到2是降序

例三:1 4 2 6    4到2是降序

这样的情况稍复杂一些,有些情况是YES,有些情况是NO

I don't want to be deducted

原文:https://www.cnblogs.com/fate-/p/12500581.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!