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

  • Slice and dice

    Given two arrays, you are asked if it’s possible to obtain the second one by slicing the first one at one location and swapping those parts. Empty slices are allowed.

    Input

    The first line of the input contains a single integer n the size of the two arrays (1 ≤ n ≤ 1000).
    The second line contains n space-separated integers ().
    The third line contains n space-separated integers ().

    Output

    The program should print Yes in case it’s possible to find a single location and slice the first array to obtain the second one after swapping the two slices, and No otherwise.

    Examples

    Input
    Output
    4 1 2 3 4 3 4 1 2
    Yes
    3 1 2 3 4 5 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