Submission #4560918


Source Code Expand

#include <bits/stdc++.h>
using namespace std;

using VS = vector<string>;    using LL = long long;
using VI = vector<int>;       using VVI = vector<VI>;
using PII = pair<int, int>;   using PLL = pair<LL, LL>;
using VL = vector<LL>;        using VVL = vector<VL>;

#define ALL(a)  begin((a)),end((a))
#define RALL(a) (a).rbegin(), (a).rend()
#define SZ(a) int((a).size())
#define SORT(c) sort(ALL((c)))
#define RSORT(c) sort(RALL((c)))
#define UNIQ(c) (c).erase(unique(ALL((c))), end((c)))
#define FOR(i, s, e) for (int(i) = (s); (i) < (e); (i)++)
#define FORR(i, s, e) for (int(i) = (s); (i) > (e); (i)--)
//#pragma GCC optimize ("-O3") 
#ifdef YANG33
#include "mydebug.hpp"
#else
#define DD(x) 
#endif
const int INF = 1e9;                          const LL LINF = 1e16;
const LL MOD = 1000000007;                    const double PI = acos(-1.0);
int DX[8] = { 0, 0, 1, -1, 1, 1, -1, -1 };    int DY[8] = { 1, -1, 0, 0, 1, -1, 1, -1 };

/* -----  2019/03/12  Problem: ABC 081 D / Link: http://abc081.contest.atcoder.jp/tasks/abc081_d  ----- */


int main() {
	cin.tie(0);
	ios_base::sync_with_stdio(false);

	LL N;
	cin >> N;
	vector<LL> a(N);
	for (int i = 0; i < N; ++i) {
		cin >> a[i];
	}
	vector<PLL> ans;
	int mxidx = max_element(ALL(a)) - a.begin();
	int mnidx = min_element(ALL(a)) - a.begin();
	if (abs(a[mxidx]) >= abs(a[mnidx])) {
		FOR(i, 0, N) {
			if (i == mxidx)continue;
			ans.push_back(PLL(mxidx, i));
		}
		FOR(i, 0, N - 1) {
			ans.push_back(PLL(i, i + 1));
		}
	}
	else {
		FOR(i, 0, N) {
			if (i == mnidx)continue;
			ans.push_back(PLL(mnidx, i));
		}
		FORR(i, N - 1, 0) {
			ans.push_back(PLL(i, i - 1));
		}
	}



	cout << SZ(ans) << endl;
	for (auto it : ans) {
		cout << it.first+1 << " " << it.second+1 << endl;
	}

	return 0;
}

Submission Info

Submission Time
Task D - Non-decreasing
User Yang33
Language C++14 (GCC 5.4.1)
Score 600
Code Size 1828 Byte
Status AC
Exec Time 2 ms
Memory 256 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 600 / 600
Status
AC × 3
AC × 42
Set Name Test Cases
Sample 00_example_01.txt, 00_example_02.txt, 00_example_03.txt
All 00_example_01.txt, 00_example_02.txt, 00_example_03.txt, 01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 20.txt, 21.txt, 22.txt, 23.txt, 24.txt, 25.txt, 26.txt, 27.txt, 28.txt, 29.txt, 30.txt, 31.txt, 32.txt, 33.txt, 34.txt, 35.txt, 36.txt, 37.txt, 38.txt, 39.txt
Case Name Status Exec Time Memory
00_example_01.txt AC 1 ms 256 KiB
00_example_02.txt AC 1 ms 256 KiB
00_example_03.txt AC 1 ms 256 KiB
01.txt AC 1 ms 256 KiB
02.txt AC 1 ms 256 KiB
03.txt AC 1 ms 256 KiB
04.txt AC 1 ms 256 KiB
05.txt AC 1 ms 256 KiB
06.txt AC 1 ms 256 KiB
07.txt AC 2 ms 256 KiB
08.txt AC 2 ms 256 KiB
09.txt AC 2 ms 256 KiB
10.txt AC 2 ms 256 KiB
11.txt AC 2 ms 256 KiB
12.txt AC 2 ms 256 KiB
13.txt AC 1 ms 256 KiB
14.txt AC 2 ms 256 KiB
15.txt AC 2 ms 256 KiB
16.txt AC 1 ms 256 KiB
17.txt AC 2 ms 256 KiB
18.txt AC 2 ms 256 KiB
19.txt AC 1 ms 256 KiB
20.txt AC 2 ms 256 KiB
21.txt AC 2 ms 256 KiB
22.txt AC 1 ms 256 KiB
23.txt AC 2 ms 256 KiB
24.txt AC 1 ms 256 KiB
25.txt AC 2 ms 256 KiB
26.txt AC 1 ms 256 KiB
27.txt AC 2 ms 256 KiB
28.txt AC 2 ms 256 KiB
29.txt AC 2 ms 256 KiB
30.txt AC 1 ms 256 KiB
31.txt AC 1 ms 256 KiB
32.txt AC 1 ms 256 KiB
33.txt AC 1 ms 256 KiB
34.txt AC 1 ms 256 KiB
35.txt AC 2 ms 256 KiB
36.txt AC 2 ms 256 KiB
37.txt AC 2 ms 256 KiB
38.txt AC 1 ms 256 KiB
39.txt AC 2 ms 256 KiB