H
来源:互联网 发布:软件测试四个阶段 编辑:程序博客网 时间:2024/04/25 21:23
Submit
Status
Practice
HDU 3833
Description
Given a permutation P of 1 to N, YY wants to know whether there exists such three elements P[i 1], P[i 2], P[i 3] that
P[i 1]-P[i 2]=P[i 2]-P[i 3], 1<=i 1<i 2<i 3<=N.
Input
The first line is T(T<=60), representing the total test cases.
Each test case comes two lines, the former one is N, 3<=N<=10000, the latter is a permutation of 1 to N.
Output
For each test case, just output 'Y' if such i 1, i 2, i 3 can be found, else 'N'.
Sample Input
2
3
1 3 2
4
3 2 4 1
Sample Output
N
Status
Practice
HDU 3833
Description
Given a permutation P of 1 to N, YY wants to know whether there exists such three elements P[i 1], P[i 2], P[i 3] that
P[i 1]-P[i 2]=P[i 2]-P[i 3], 1<=i 1<i 2<i 3<=N.
Input
The first line is T(T<=60), representing the total test cases.
Each test case comes two lines, the former one is N, 3<=N<=10000, the latter is a permutation of 1 to N.
Output
For each test case, just output 'Y' if such i 1, i 2, i 3 can be found, else 'N'.
Sample Input
2
3
1 3 2
4
3 2 4 1
Sample Output
N
Y
题意:要找出满足条件p1-p2=p2-p3的数,如果有 就输出YES 否则NO。
PS:首先由题p2=(p1+p3)/2;p1+p3必为偶数;
#include <stdio.h>#include <string.h>int a[55555],hash[55555];int main(){ int i,j,n,t,sum; scanf("%d",&t); while(t--) { int flag=0; memset(hash,0,sizeof(hash)); scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",&a[i]); hash[a[i]]=i;//用下标来重新标记输入过的数 } for(i=0;i<n-1;i++) for(j=i+2;j<n;j++) { sum=a[i]+a[j]; if(sum%2!=0) //如果是奇数直接continue; continue; else { if(hash[sum/2]>i&&hash[sum/2]<j) { flag=1; break; } } } if(flag==1) printf("Y\n"); else printf("N\n"); }}
0 0
- h
- h
- h
- ,h
- h
- h
- H
- h
- h
- h
- H
- h
- H
- H
- h
- H
- H
- h
- 24天学会设计模式------工厂方法模式
- n维向量积(3维向量积的推广,向量算法)
- [LeetCode]Find Minimum in Rotated Sorted Array,解题报告
- 工作日志
- 复习一下DNS---顺便玩玩nslookup www.baidu.com命令
- H
- memcached
- EularProject 12: 三角形数的因子个数问题
- jar命令打包成可执行文件
- 安卓广播接收者
- 《汇编语言》-王爽-第三版-读书笔记-前言
- Easy Climb - UVa 12170 dp+优先队列
- js操作json
- jquery笔记之令人着迷的地方