시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 (하단 참고)512 MB102322338.333%

문제

길이 n인 정수 배열 A가 있고 i번째 원소는 A[i]라 하자 (i = 1, 2, ..., n). 1 ≤ i ≤ j ≤ n 인 인덱스 i, j에 대해, A[i, j]는 i번째 원소부터 j번째 원소까지 총 (j-i+1)개의 원소로 구성된 A의 부분 배열이다 - 이 부분 배열의 길이는 (j-i+1)이다. 예를 들어 A = [2, 2, 1, 3, 2] 이라면 A[2, 3] = [2, 1]이고 A[3, 5] = [1, 3, 2]가 된다.

길이가 2 이상인 (즉, i < j) 어떤 부분배열 A[i, j]의 원소들이 증가/감소를 번갈아 반복하면 지그재그 부분배열이라 부르는데, 구체적으로 아래 조건 중 하나를 만족해야한다:

  • 조건 1: i ≤ k < j 인 모든 k에 대하여 (k - i)가 짝수 일 때 A[k] < A[k+1] 이고 홀수일 때 A[k] > A[k+1] 을 만족함
  • 조건 2: i ≤ k < j 인 모든 k에 대하여 (k - i)가 짝수 일 때 A[k] > A[k+1] 이고 홀수일 때 A[k] < A[k+1] 을 만족함

예를 들어 A = [2, 2, 1, 3, 2] 이라면 A[2, 3]과 A[3, 5]는 지그재그 부분배열이며, A[1, 2]나 A[1, 3]은 지그재그 부분배열이 아니다.

Alice는 A의 부분배열 중 지그재그 부분배열의 개수가 몇 개인지 알고 싶어한다. Alice를 도와주자.

입력

입력 첫 줄에 테스트 케이스의 수 T가 주어진다.

각 테스트 케이스는 두 줄에 나누어 주어진다. 첫 줄에 n이 주어지고 둘째 줄에 n개의 정수가 공백으로 구분되어 주어진다.

출력

각 테스트 케이스의 정답인 지그재그 부분배열의 개수를 각 줄에 출력한다.

제한

  • 1 ≤ T ≤ 10
  • 1 ≤ n ≤ 100,000
  • -109 ≤ A[i] ≤ 109 (1 ≤ i ≤ n)

예제 입력 1

4
5
2 2 1 3 2
4
2 0 2 2
5
1 2 3 2 1
7
1 2 1 2 1 2 1

예제 출력 1

6
3
5
21

예제 1: A[2, 3], A[2, 4], A[2, 5], A[3, 4], A[3, 5], A[4, 5]가 지그재그 부분배열이다.

예제 2: A[1, 2], A[1, 3], A[2, 3]이 지그재그 부분배열이다.

예제 3: 추가 설명 없음.

예제 4: 길이 2이상인 모든 부분배열이 지그재그 부분배열이다.

W3sicHJvYmxlbV9pZCI6IjI1NTcxIiwicHJvYmxlbV9sYW5nIjoiMCIsInRpdGxlIjoiXHVjOWMwXHVhZGY4XHVjN2FjXHVhZGY4IFx1YmQ4MFx1YmQ4NFx1YmMzMFx1YzVmNCIsImRlc2NyaXB0aW9uIjoiPHA+XHVhZTM4XHVjNzc0IG5cdWM3NzggXHVjODE1XHVjMjE4IFx1YmMzMFx1YzVmNCBBXHVhYzAwIFx1Yzc4OFx1YWNlMCBpXHViYzg4XHVjOWY4IFx1YzZkMFx1YzE4Y1x1YjI5NCBBW2ldXHViNzdjIFx1ZDU1OFx1Yzc5MCAoaSA9IDEsIDIsIC4uLiwgbikuIDEgJmxlOyBpICZsZTsgaiAmbGU7IG4gXHVjNzc4IFx1Yzc3OFx1YjM3MVx1YzJhNCBpLCBqXHVjNWQwIFx1YjMwMFx1ZDU3NCwgQVtpLCBqXVx1YjI5NCBpXHViYzg4XHVjOWY4IFx1YzZkMFx1YzE4Y1x1YmQ4MFx1ZDEzMCBqXHViYzg4XHVjOWY4IFx1YzZkMFx1YzE4Y1x1YWU0Y1x1YzljMCBcdWNkMWQgKGotaSsxKVx1YWMxY1x1Yzc1OCBcdWM2ZDBcdWMxOGNcdWI4NWMgXHVhZDZjXHVjMTMxXHViNDFjIEFcdWM3NTggXHViZDgwXHViZDg0IFx1YmMzMFx1YzVmNFx1Yzc3NFx1YjJlNCAtIFx1Yzc3NCBcdWJkODBcdWJkODQgXHViYzMwXHVjNWY0XHVjNzU4IFx1YWUzOFx1Yzc3NFx1YjI5NCAoai1pKzEpXHVjNzc0XHViMmU0LiBcdWM2MDhcdWI5N2MgXHViNGU0XHVjNWI0IEEgPSBbMiwgMiwgMSwgMywgMl0gXHVjNzc0XHViNzdjXHViYTc0IEFbMiwgM10gPSBbMiwgMV1cdWM3NzRcdWFjZTAgQVszLCA1XSA9IFsxLCAzLCAyXVx1YWMwMCBcdWI0MWNcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YWUzOFx1Yzc3NFx1YWMwMCAyIFx1Yzc3NFx1YzBjMVx1Yzc3OCAoXHVjOTg5LCBpICZsdDsgaikgXHVjNWI0XHViNWE0IFx1YmQ4MFx1YmQ4NFx1YmMzMFx1YzVmNCBBW2ksIGpdXHVjNzU4IFx1YzZkMFx1YzE4Y1x1YjRlNFx1Yzc3NCBcdWM5OWRcdWFjMDBcL1x1YWMxMFx1YzE4Y1x1Yjk3YyBcdWJjODhcdWFjMDhcdWM1NDQgXHViYzE4XHViY2Y1XHVkNTU4XHViYTc0IFx1YzljMFx1YWRmOFx1YzdhY1x1YWRmOCBcdWJkODBcdWJkODRcdWJjMzBcdWM1ZjRcdWM3NzRcdWI3N2MgXHViZDgwXHViOTc0XHViMjk0XHViMzcwLCBcdWFkNmNcdWNjYjRcdWM4MDFcdWM3M2NcdWI4NWMgXHVjNTQ0XHViNzk4IFx1Yzg3MFx1YWM3NCBcdWM5MTEgXHVkNTU4XHViMDk4XHViOTdjIFx1YjljY1x1Yzg3MVx1ZDU3NFx1YzU3Y1x1ZDU1Y1x1YjJlNDo8XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT5cdWM4NzBcdWFjNzQgMTogaSAmbGU7IGsgJmx0OyBqIFx1Yzc3OCBcdWJhYThcdWI0ZTAga1x1YzVkMCBcdWIzMDBcdWQ1NThcdWM1ZWMgKGsgLSBpKVx1YWMwMCBcdWM5ZGRcdWMyMTggXHVjNzdjIFx1YjU0YyBBW2tdICZsdDsgQVtrKzFdIFx1Yzc3NFx1YWNlMCBcdWQ2NDBcdWMyMThcdWM3N2MgXHViNTRjIEFba10gJmd0OyBBW2srMV0gXHVjNzQ0IFx1YjljY1x1Yzg3MVx1ZDU2ODxcL2xpPlxyXG5cdDxsaT5cdWM4NzBcdWFjNzQgMjogaSAmbGU7IGsgJmx0OyBqIFx1Yzc3OCBcdWJhYThcdWI0ZTAga1x1YzVkMCBcdWIzMDBcdWQ1NThcdWM1ZWMgKGsgLSBpKVx1YWMwMCBcdWM5ZGRcdWMyMTggXHVjNzdjIFx1YjU0YyBBW2tdICZndDsgQVtrKzFdIFx1Yzc3NFx1YWNlMCBcdWQ2NDBcdWMyMThcdWM3N2MgXHViNTRjIEFba10gJmx0OyBBW2srMV0gXHVjNzQ0IFx1YjljY1x1Yzg3MVx1ZDU2ODxcL2xpPlxyXG48XC91bD5cclxuXHJcbjxwPlx1YzYwOFx1Yjk3YyBcdWI0ZTRcdWM1YjQgQSA9IFsyLCAyLCAxLCAzLCAyXSBcdWM3NzRcdWI3N2NcdWJhNzQgQVsyLCAzXVx1YWNmYyBBWzMsIDVdXHViMjk0IFx1YzljMFx1YWRmOFx1YzdhY1x1YWRmOCBcdWJkODBcdWJkODRcdWJjMzBcdWM1ZjRcdWM3NzRcdWJhNzAsIEFbMSwgMl1cdWIwOTggQVsxLCAzXVx1Yzc0MCBcdWM5YzBcdWFkZjhcdWM3YWNcdWFkZjggXHViZDgwXHViZDg0XHViYzMwXHVjNWY0XHVjNzc0IFx1YzU0NFx1YjJjOFx1YjJlNC48XC9wPlxyXG5cclxuPHA+QWxpY2VcdWIyOTQgQVx1Yzc1OCBcdWJkODBcdWJkODRcdWJjMzBcdWM1ZjQgXHVjOTExIFx1YzljMFx1YWRmOFx1YzdhY1x1YWRmOCBcdWJkODBcdWJkODRcdWJjMzBcdWM1ZjRcdWM3NTggXHVhYzFjXHVjMjE4XHVhYzAwIFx1YmE4NyBcdWFjMWNcdWM3NzhcdWM5YzAgXHVjNTRjXHVhY2UwIFx1YzJmNlx1YzViNFx1ZDU1Y1x1YjJlNC4gQWxpY2VcdWI5N2MgXHViM2M0XHVjNjQwXHVjOGZjXHVjNzkwLjxcL3A+XHJcbiIsImlucHV0IjoiPHA+XHVjNzg1XHViODI1IFx1Y2NhYiBcdWM5MDRcdWM1ZDAgXHVkMTRjXHVjMmE0XHVkMmI4IFx1Y2YwMFx1Yzc3NFx1YzJhNFx1Yzc1OCBcdWMyMTggVFx1YWMwMCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YWMwMSBcdWQxNGNcdWMyYTRcdWQyYjggXHVjZjAwXHVjNzc0XHVjMmE0XHViMjk0IFx1YjQ1MCBcdWM5MDRcdWM1ZDAgXHViMDk4XHViMjA0XHVjNWI0IFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC4gXHVjY2FiIFx1YzkwNFx1YzVkMCBuXHVjNzc0IFx1YzhmY1x1YzViNFx1YzljMFx1YWNlMCBcdWI0NThcdWM5ZjggXHVjOTA0XHVjNWQwIG5cdWFjMWNcdWM3NTggXHVjODE1XHVjMjE4XHVhYzAwIFx1YWNmNVx1YmMzMVx1YzczY1x1Yjg1YyBcdWFkNmNcdWJkODRcdWI0MThcdWM1YjQgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LjxcL3A+XHJcbiIsIm91dHB1dCI6IjxwPlx1YWMwMSBcdWQxNGNcdWMyYTRcdWQyYjggXHVjZjAwXHVjNzc0XHVjMmE0XHVjNzU4IFx1YzgxNVx1YjJmNVx1Yzc3OCBcdWM5YzBcdWFkZjhcdWM3YWNcdWFkZjggXHViZDgwXHViZDg0XHViYzMwXHVjNWY0XHVjNzU4IFx1YWMxY1x1YzIxOFx1Yjk3YyBcdWFjMDEgXHVjOTA0XHVjNWQwIFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC48XC9wPlxyXG4iLCJoaW50IjoiIiwib3JpZ2luYWwiOiIxIiwiaHRtbF90aXRsZSI6IjAiLCJwcm9ibGVtX2xhbmdfdGNvZGUiOiJLb3JlYW4iLCJsaW1pdCI6Ijx1bD5cclxuXHQ8bGk+MSAmbGU7IFQgJmxlOyAxMDxcL2xpPlxyXG5cdDxsaT4xICZsZTsgbiAmbGU7IDEwMCwwMDA8XC9saT5cclxuXHQ8bGk+LTEwPHN1cD45PFwvc3VwPiAmbGU7IEFbaV0gJmxlOyAxMDxzdXA+OTxcL3N1cD4gKDEgJmxlOyBpICZsZTsgbik8XC9saT5cclxuPFwvdWw+XHJcbiIsInNhbXBsZV9leHBsYWluXzEiOiI8cD5cdWM2MDhcdWM4MWMgMTogQVsyLCAzXSwgQVsyLCA0XSwgQVsyLCA1XSwgQVszLCA0XSwgQVszLCA1XSwgQVs0LCA1XVx1YWMwMCBcdWM5YzBcdWFkZjhcdWM3YWNcdWFkZjggXHViZDgwXHViZDg0XHViYzMwXHVjNWY0XHVjNzc0XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWM2MDhcdWM4MWMgMjogQVsxLCAyXSwgQVsxLCAzXSwgQVsyLCAzXVx1Yzc3NCBcdWM5YzBcdWFkZjhcdWM3YWNcdWFkZjggXHViZDgwXHViZDg0XHViYzMwXHVjNWY0XHVjNzc0XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWM2MDhcdWM4MWMgMzogXHVjZDk0XHVhYzAwIFx1YzEyNFx1YmE4NSBcdWM1YzZcdWM3NGMuPFwvcD5cclxuXHJcbjxwPlx1YzYwOFx1YzgxYyA0OiBcdWFlMzhcdWM3NzQgMlx1Yzc3NFx1YzBjMVx1Yzc3OCBcdWJhYThcdWI0ZTAgXHViZDgwXHViZDg0XHViYzMwXHVjNWY0XHVjNzc0IFx1YzljMFx1YWRmOFx1YzdhY1x1YWRmOCBcdWJkODBcdWJkODRcdWJjMzBcdWM1ZjRcdWM3NzRcdWIyZTQuPFwvcD5cclxuIn0seyJwcm9ibGVtX2lkIjoiMjU1NzEiLCJwcm9ibGVtX2xhbmciOiIxIiwidGl0bGUiOiJaaWd6YWcgU3ViYXJyYXlzIiwiZGVzY3JpcHRpb24iOiI8cD5MZXQgQSBiZSBhbiBpbnRlZ2VyIGFycmF5IG9mIGxlbmd0aCBuIHdoZXJlIEFbaV0gaXMgdGhlIGktdGggZWxlbWVudCBpbiBBIChpID0gMSwgMiwgLi4uLCBuKS4gRm9yIGluZGljZXMgaSwgaiB3aXRoIDEgJmxlOyBpICZsZTsgaiAmbGU7IG4sIGxldCBBW2ksIGpdIGJlIHRoZSBzdWJhcnJheSBvZiBBIGNvbnNpc3Rpbmcgb2YgKGotaSsxKSBlbGVtZW50cyBmcm9tIEFbaV0gdG8gQVtqXSAtLSB0aGlzIHN1YmFycmF5JiMzOTtzIGxlbmd0aCBpcyAoai1pKzEpLiBGb3IgaW5zdGFuY2UsIGlmIEEgPSBbMiwgMiwgMSwgMywgMl0sIHRoZW4gQVsyLCAzXSA9IFsyLCAxXSBhbmQmbmJzcDtBWzMsIDVdID0gWzEsIDMsIDJdLjxcL3A+XHJcblxyXG48cD5JZiB0aGUgZWxlbWVudHMgb2YgYSBzdWJhcnJheSBBW2ksIGpdIHdob3NlIGxlbmd0aCBpcyAyIG9yIG1vcmUgKHRoYXQgaXMsIGkgJmx0OyBqKSBhbHRlcm5hdGUgYmV0d2VlbiBpbmNyZWFzaW5nXC9kZWNyZWFzaW5nLCB0aGVuIHRoZSBzdWJhcnJheSBpcyBjYWxsZWQgYSB6aWd6YWcgc3ViYXJyYXkgLS0gbW9yZSBmb3JtYWxseSwgb25lIG9mIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBtdXN0IGJlIG1ldDo8XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT5Db25kaXRpb24gMTogRm9yIGFsbCBrIHdpdGggaSAmbGU7IGsgJmx0OyBqLCBpZiAoayAtIGkpIGlzIGV2ZW4gdGhlbiZuYnNwO0Fba10gJmx0OyBBW2srMV0gaG9sZHMgYW5kIGlmIChrIC0gaSkgaXMgb2RkIHRoZW4gQVtrXSAmZ3Q7IEFbaysxXSBob2xkcy48XC9saT5cclxuXHQ8bGk+Q29uZGl0aW9uIDI6Jm5ic3A7Rm9yIGFsbCBrIHdpdGggaSAmbGU7IGsgJmx0OyBqLCBpZiAoayAtIGkpIGlzIGV2ZW4gdGhlbiBBW2tdICZndDsgQVtrKzFdIGhvbGRzIGFuZCBpZiAoayAtIGkpIGlzIG9kZCB0aGVuIEFba10gJmx0OyBBW2srMV0gaG9sZHMuPFwvbGk+XHJcbjxcL3VsPlxyXG5cclxuPHA+Rm9yIGluc3RhbmNlLCBpZiBBID0gWzIsIDIsIDEsIDMsIDJdLCB0aGVuIEFbMiwgM10gYW5kJm5ic3A7QVszLCA1XSBhcmUgemlnemFnIHN1YmFycmF5cyB3aGVyZWFzIEFbMSwgMl0gYW5kJm5ic3A7QVsxLCAzXSBhcmUgbm90LjxcL3A+XHJcblxyXG48cD5BbGljZSB3YW50cyB0byBrbm93IGhvdyBtYW55IHN1YmFycmF5cyBvZiBBIGFyZSB6aWd6YWcgc3ViYXJyYXlzLiBMZXQmIzM5O3MgaGVscCBBbGljZS48XC9wPlxyXG4iLCJpbnB1dCI6IjxwPlRoZSBmaXJzdCBsaW5lIG9mIHRoZSBpbnB1dCB3aWxsIGNvbnRhaW4gVCwgdGhlIG51bWJlciBvZiB0ZXN0IGNhc2VzLjxcL3A+XHJcblxyXG48cD5FYWNoIHRlc3QgY2FzZSB3aWxsIGJlIGdpdmVuIG92ZXIgdHdvIGxpbmVzLiBUaGUgZmlyc3QgbGluZSB3aWxsIGNvbnRhaW4gbiwgYW5kIHRoZSBzZWNvbmQgbGluZSB3aWxsIGNvbnRhaW4gbiBpbnRlZ2VycywgdGhlIGFycmF5JiMzOTtzIGVsZW1lbnRzLCZuYnNwO3NlcGFyYXRlZCBieSB3aGl0ZXNwYWNlLjxcL3A+XHJcbiIsIm91dHB1dCI6IjxwPk91dHB1dCBlYWNoIHRlc3QgY2FzZSYjMzk7cyBhbnN3ZXIgKHRoZSBudW1iZXIgb2YgemlnemFnIHN1YmFycmF5cykgaW4gZWFjaCBsaW5lLjxcL3A+XHJcbiIsImhpbnQiOiIiLCJvcmlnaW5hbCI6IjAiLCJodG1sX3RpdGxlIjoiMCIsInByb2JsZW1fbGFuZ190Y29kZSI6IkVuZ2xpc2giLCJsaW1pdCI6Ijx1bD5cclxuXHQ8bGk+MSAmbGU7IFQgJmxlOyAxMDxcL2xpPlxyXG5cdDxsaT4xICZsZTsgbiAmbGU7IDEwMCwwMDA8XC9saT5cclxuXHQ8bGk+LTEwPHN1cD45PFwvc3VwPiAmbGU7IEFbaV0gJmxlOyAxMDxzdXA+OTxcL3N1cD4gKDEgJmxlOyBpICZsZTsgbik8XC9saT5cclxuPFwvdWw+XHJcbiIsInNhbXBsZV9leHBsYWluXzEiOiI8cD5DYXNlIDE6IEFbMiwgM10sIEFbMiwgNF0sIEFbMiwgNV0sIEFbMywgNF0sIEFbMywgNV0sIGFuZCBBWzQsIDVdIGFyZSB6aWd6YWcgc3ViYXJyYXlzLjxcL3A+XHJcblxyXG48cD5DYXNlIDI6IEFbMSwgMl0sIEFbMSwgM10sIGFuZCBBWzIsIDNdIGFyZSB6aWd6YWcgc3ViYXJyYXlzLjxcL3A+XHJcblxyXG48cD5DYXNlIDM6IE5vIGV4cGxhbmF0aW9uLjxcL3A+XHJcblxyXG48cD5DYXNlIDQ6IEFsbCBzdWJhcnJheXMgb2YgbGVuZ3RoIDIgb3IgbW9yZSBhcmUgemlnemFnIHN1YmFycmF5cy48XC9wPlxyXG4ifV0=

시간 제한

  • Java 8: 2 초
  • Python 3: 1 초
  • PyPy3: 1 초
  • Java 8 (OpenJDK): 2 초
  • Java 11: 2 초
  • Kotlin (JVM): 2 초
  • Java 15: 2 초