Codeforces 451B
来源:互联网 发布:java表名无效 编辑:程序博客网 时间:2024/05/16 14:38
Being a programmer, you like arrays a lot. For your birthday, your friends have given you an arraya consisting of ndistinct integers.
Unfortunately, the size of a is too small. You want a bigger array! Your friends agree to give you a bigger array, but only if you are able to answer the following question correctly: is it possible to sort the arraya (in increasing order) by reversing exactly one segment of a? See definitions of segment and reversing in the notes.
The first line of the input contains an integer n (1 ≤ n ≤ 105) — the size of arraya.
The second line contains n distinct space-separated integers:a[1], a[2], ..., a[n] (1 ≤ a[i] ≤ 109).
Print "yes" or "no" (without quotes), depending on the answer.
If your answer is "yes", then also print two space-separated integers denoting start and end (start must not be greater than end) indices of the segment to be reversed. If there are multiple ways of selecting these indices, print any of them.
33 2 1
yes1 3
42 1 3 4
yes1 2
43 1 2 4
no
21 2
yes1 1
这道题用模拟就可以了,直接上代码了。
#include <cstdio>#include <algorithm>using namespace std;const int maxn = 100010;struct Node{ int val,id; bool operator < (const Node& rhs) const{ return val < rhs.val; }}node[maxn];int main(){ int n,l = -1,r; bool flag = 1; scanf("%d",&n); for(int i = 1;i <= n;i++){ scanf("%d",&node[i].val); node[i].id = i; } sort(node+1,node+n+1); node[n+1].id = -1; for(int i = 1;i <= n;i++){ if(node[i].id != i){ l = i; break; } } if(l == -1){ printf("yes\n1 1\n"); return 0; } for(int i = l;i <= n;i++){ if(node[i].id - node[i+1].id != 1){ r = i; break; } } for(int i = r+1;i <= n;i++){ if(node[i].id != i){ flag = false; break; } } if(flag) printf("yes\n%d %d\n",l,r); else printf("no\n"); return 0;}
- Codeforces 451B
- CodeForces 451B 模拟
- codeforces B
- codeforces B
- codeforces B
- codeforces B
- CF Codeforces Round #258 (Div. 2) B (451B)
- Codeforces 451B Sort the Array
- Codeforces 451B Sort the Array(水题)
- Codeforces 451 B. Sort the Array
- CodeForces 451B Sort the Array
- CodeForces 451B. Sort the Array
- codeforces 451B Sort the Array
- Codeforces Round #451 (Div. 2) A-B
- Codeforces Round #451 (Div. 2) B
- CodeForces 626B CodeForces 626B【暴力】
- CodeForces 841B (B) 博弈
- codeforces 134B
- oozie-3.3.2版本安装
- 可以随机获取百度提供的网站地址
- 网络编程______网络异步通讯
- 基础:按值传递引用类型,按引用传递引用类新
- IT忍者神龟之MyEclipse 9.x Professional/blue/spring/bling 下载与破解
- Codeforces 451B
- 初级程序员进阶之路
- Codility-Peak
- oracle 存储过程调优
- feng_1
- 构造字符串 之 hdu 4850 Wow! Such String!
- OCP 1Z0 053 216
- HDU1874 畅通工程续 【链式前向星】+【Dijkstra】
- 威盛实习生招聘要求