Algorithms and Data Structures

  • Profound Academy

    • Status
      • 1
        Implementation
      • 2
        Bitwise operations
      • 3
        Prefix Sums
      • 4
        Sliding window / Two pointers
      • 5
        Modular Arithmetic
      • 6
        Number Theory
      • 7
        Binary Search
      • 8
        Basic Sorting
      • 9
        Greedy Algorithms
      • 10
        Basic Dynamic Programming
      • 11
        Recursion
      • 12
        Linked LIst
      • 13
        Queue & Stack
      • 14
        Binary tree + BST
      • 15
        Divide & Conquer + Advanced Sorting
      • 16
        Heap
      • 17
        Hashing
      • 18
        Graph Representation
      • 19
        BFS

  • Swap elements

    Given two arrays, you are asked if it’s possible to make those arrays equal by swapping at most one pair of elements. Those elements can be from one array, or one element can be from the first one, while the other from the second one.

    Input

    The first line of the input contains a single integer n (1 ≤ n ≤ 1000), the number of elements in each of the arrays. The next line contains n integers representing the first array . The third line contains n integers representing the second array .

    Output

    The program should print Yes in case it’s possible to swap two elements to make the arrays equal and No otherwise.

    Examples

    Input
    Output
    5 1 2 3 4 5 1 4 3 2 5
    Yes
    5 1 2 3 4 5 5 6 7 8 9
    No
    4 1 2 2 4 1 3 3 4
    Yes
    3 5 7 1 5 7 1
    Yes
    3 3 4 5 3 4 6
    No
     

    Constraints

    Time limit: 1 seconds

    Memory limit: 512 MB

    Output limit: 1 MB

    To check your solution you need to sign in
    Sign in to continue