Boxes

AtCoder
IDagc010_b
Time2000ms
Memory256MB
Difficulty
There are $N$ boxes arranged in a circle. The $i$\-th box contains $A_i$ stones. Determine whether it is possible to remove all the stones from the boxes by repeatedly performing the following operation: * Select one box. Let the box be the $i$\-th box. Then, for each $j$ from $1$ through $N$, remove exactly $j$ stones from the $(i+j)$\-th box. Here, the $(N+k)$\-th box is identified with the $k$\-th box. Note that the operation cannot be performed if there is a box that does not contain enough number of stones to be removed. ## Constraints * $1 ≦ N ≦ 10^5$ * $1 ≦ A_i ≦ 10^9$ ## Input The input is given from Standard Input in the following format: $N$ $A_1$ $A_2$ … $A_N$ [samples]
Samples
Input #1
5
4 5 1 2 3
Output #1
YES

All the stones can be removed in one operation by selecting the second box.
Input #2
5
6 9 12 10 8
Output #2
YES
Input #3
4
1 2 3 1
Output #3
NO
API Response (JSON)
{
  "problem": {
    "name": "Boxes",
    "description": {
      "content": "There are $N$ boxes arranged in a circle. The $i$\\-th box contains $A_i$ stones. Determine whether it is possible to remove all the stones from the boxes by repeatedly performing the following operati",
      "description_type": "Markdown"
    },
    "platform": "AtCoder",
    "limit": {
      "time_limit": 2000,
      "memory_limit": 262144
    },
    "difficulty": "None",
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "agc010_b"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "There are $N$ boxes arranged in a circle. The $i$\\-th box contains $A_i$ stones.\nDetermine whether it is possible to remove all the stones from the boxes by repeatedly performing the following operati...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments