Problem:
Score : 600 points

Problem Statement

Given are two integer sequences of N elements each: A_1,...,A_N and B_1,...,B_N.
Determine if it is possible to do the following operation at most N-2 times (possibly zero) so that, for every integer i from 1 to N, A_i \leq B_i holds:

Choose two distinct integers x and y between 1 and N (inclusive), and swap the values of A_x and A_y.

Constraints

2 \leq N \leq 10^5

1 \leq A_i,B_i \leq 10^9

Input

Input is given from Standard Input in the following format:

N
A_1 A_2 ... A_N
B_1 B_2 ... B_N

Output

If the objective is achievable, print Yes; if it is not, print No.

Sample Input 1

3
1 3 2
1 2 3

Sample Output 1

Yes

We should swap the values of A_2 and A_3.

Sample Input 2

3
1 2 3
2 2 2

Sample Output 2

No

Sample Input 3

6
3 1 2 6 3 4
2 2 8 3 4 3

Sample Output 3

Yes

Solution in Perl (v5.18.2) (judge verdict: Runtime Error)

#B

$data_N = <STDIN>;
$data_int_N = int($data_N);

$data_A = <STDIN>;
$data_B = <STDIN>;

@data_int_A = ();
@data_int_B = ();

@data_int_A = split /\s+/, $data_A;
@data_int_B = split /\s+/, $data_B;
#while($data_A =~ /\s*(\d+)\s*/){
#    push(@data_int_A, int($1));
#}
#
#while($data_B =~ /\s*(\d+)\s*/){
#    push(@data_int_B, int($1));
#}

@data_int_B_sort = sort {$a <=> $b} @data_int_B;
$change_cnt = 0;
$start_loc = 0;

for($i_loop = 0; $i_loop < $data_int_N - 2; $i_loop++){
    for($j_loop = $start_loc + 1; $j_loop < $data_int_N; $j_loop++){
        if($data_int_A[$j_loop] < $data_int_A[$start_loc]){
            $tmp_int = $data_int_A[$j_loop];
            $data_int_A[$j_loop] = $data_int_A[$start_loc];
            $data_int_A[$start_loc] = $tmp_int;
            $change_cnt++;
            last;
        }
    }
    if($j_loop => $data_int_N){
        $start_loc++;
    }
}

$ans = "Yes";
for($i_loop = 0; $i_loop < $data_int_N; $i_loop++){
    if($data_int_A[$i_loop] > $data_int_B[$i_loop]_soft){
        $ans = "No";
        last;
    }
}

print "$ans\n";