zzulioj 1817: match number (条件判断)
来源:互联网 发布:inso网络 编辑:程序博客网 时间:2024/05/09 22:43
1817: match number
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 92 Solved: 42
SubmitStatusWeb Board
Description
喜欢写程序的同学一般对数字较为敏感。对于一串长度为2*n的号码,我们认为如果它符合以下条件,就是匹配的:
把这个号码分为左右两半部分,长度均为n。对于左半部分的每一位数,右半部分都存在一位严格大于它的数;或者对于左半部分的每一位数,右半部分都存在一位严格小于它的数。注意,右半部分的每一位必须对应左半部分的某一位,也就是每一位数只能“使用”一次。
给出一个号码,你能判断它是否是匹配的吗?
Input
多组数据。
第一行,1个整数n(n<1000)。
第二行,一串长度为2*n的号码,由'0'~'9'组成。
Output
对于每组数据,如果号码是匹配的,输出"YES",否则输出"NO"(引号不输出)。
Sample Input
2
2421
2
0135
2
3754
Sample Output
YES
YES
NO
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;int a[510];int b[510];char s[1010];int main(){ int n,i,j,l; int flag; while(scanf("%d",&n)!=EOF) { memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); scanf("%s",s); for(i=0;i<n;i++) a[i]=s[i]-'0'; sort(a,a+n); int k=0; for(i=n;i<2*n;i++) b[k++]=s[i]-'0'; sort(b,b+k); flag=0; if(a[0]>b[0]&&a[n-1]>b[n-1]) { for(i=0;i<n;i++) { if(a[i]<=b[i]) { flag=1; break; } } if(flag) printf("NO\n"); else printf("YES\n"); } else if(a[0]<b[0]&&a[n-1]<b[n-1]) { flag=0; for(i=0;i<n;i++) { if(a[i]>=b[i]) { flag=1; break; } } if(flag) printf("NO\n"); else printf("YES\n"); } else printf("NO\n"); } return 0;}
0 0
- zzulioj 1817: match number (条件判断)
- zzulioj--1817--match number(水题)
- zzulioj 1802: SC借水 (暴力&条件判断)
- zzuliOJ 1919:分割序列(二分+限制条件判断)
- zzulioj 1812: sort (排序&&输入结束判断)
- ZZULIOJ 1105: 判断友好数对(函数专题)
- zzuliOJ 1915:判断重复坐标(排序+水题)
- zzuoj10440: match number
- zqoj 1817: match number 【sort排序】【郑大校赛】
- python:(4)条件判断
- 矩阵的条件数(condition number)
- 条件判断
- 条件判断
- 条件判断
- 条件判断
- 条件判断
- 条件判断
- 条件判断
- 求C++数据结构二叉树的宽度
- 数据库连接操作
- CodeForces 507E Breaking Good 最短路
- UVa1103古代象形符号
- 线程问题
- zzulioj 1817: match number (条件判断)
- sphinx(coreseek)在linux上的安装
- C# implementation of dynamic hand gesture recognition
- java入门学习需要知道的准备知识
- MySQL5.6 GTID新特性实践
- ORACLE用户管理
- VS2010 vs2012的目录包含
- centos 7.0 ssh 登陆localhost需要输入密码
- Spring MVC一些配置信息解析