水题,直接前n个和后n个分别排序,然后对应位比较即可(表示后来读题有点不认真。。。)
代码如下:
#include <cstdio>
#include <iostream>
#include <cstring>
#include <cctype>
#include <cmath>
#include <algorithm>
#include <queue>
#include <stack>
#include <set>
#include <map>
#include <cstdlib>
#include <vector>
#define ll long long
#define maxn 2010
using namespace std;
int a[maxn];
int main()
{
int i, j, k, n;
while ( ~scanf( "%d", &n)){
getchar();
char ch;
for ( i = 1; i <= 2 * n; i++){
ch = getchar();
a[i] = ch - '0';
}
sort( a + 1, a + n + 1);
sort( a + n + 1, a + 2 * n + 1);
int c = 0, d = 0;
for ( i = 1; i <= n; i++){
if ( a[i] < a[i + n])
c++;
if ( a[i] > a[i + n])
d++;
}
if ( c == n || d == n)
printf( "YES\n");
else
printf( "NO\n");
}
return 0;
}