Submission #20141653


Source Code Expand

#include <atcoder/all>
using namespace atcoder;
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const double pi = 3.14159265359;
const ll INF = 1LL << 60;

int main()
{
  int n;
  cin >> n;

  vector<ll> a(n);
  ll maxa = -10000000;
  ll mina =  10000000;
  int imax = -1, imin = -1;
  for (int i = 0; i < n; i++){
    cin >> a[i];
    if (a[i] > maxa){
      maxa = a[i];
      imax = i;
    }
    if (a[i] < mina){
      mina = a[i];
      imin = i;
    }
  }

  vector<pair<int, int>> ans;
  bool allPositive = true;

  if (mina >= 0){
    allPositive = true;
  } else if (maxa <= 0){
    allPositive = false;
  } else {
    if (abs(maxa) >= abs(mina)){
      allPositive = true;
      for (int i = 0; i < n; i++){
	ans.push_back(make_pair(imax+1, i+1));
      }
    } else {
      allPositive = false;
      for (int i = 0; i < n; i++){
	ans.push_back(make_pair(imin+1, i+1));
      }
    }
  }

  if (allPositive){
    for (int i = 1; i < n; i++)
      ans.push_back(make_pair(i, i+1));
  } else {
    for (int i = n; i > 1; i--)
      ans.push_back(make_pair(i, i-1));
  }
	
  cout << ans.size() << endl;
  for (auto p : ans){
    cout << p.first << " " << p.second << endl;
  }
  return 0;
}

Submission Info

Submission Time
Task D - Non-decreasing
User unnohideyuki
Language C++ (GCC 9.2.1)
Score 600
Code Size 1283 Byte
Status AC
Exec Time 8 ms
Memory 3672 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 8 ms 3564 KiB
00_example_02.txt AC 2 ms 3664 KiB
00_example_03.txt AC 2 ms 3640 KiB
01.txt AC 2 ms 3636 KiB
02.txt AC 2 ms 3584 KiB
03.txt AC 2 ms 3572 KiB
04.txt AC 2 ms 3500 KiB
05.txt AC 3 ms 3584 KiB
06.txt AC 2 ms 3636 KiB
07.txt AC 2 ms 3536 KiB
08.txt AC 2 ms 3672 KiB
09.txt AC 3 ms 3604 KiB
10.txt AC 2 ms 3640 KiB
11.txt AC 2 ms 3536 KiB
12.txt AC 2 ms 3476 KiB
13.txt AC 3 ms 3528 KiB
14.txt AC 3 ms 3456 KiB
15.txt AC 2 ms 3636 KiB
16.txt AC 2 ms 3636 KiB
17.txt AC 2 ms 3584 KiB
18.txt AC 2 ms 3456 KiB
19.txt AC 2 ms 3504 KiB
20.txt AC 2 ms 3632 KiB
21.txt AC 2 ms 3456 KiB
22.txt AC 2 ms 3452 KiB
23.txt AC 2 ms 3528 KiB
24.txt AC 2 ms 3568 KiB
25.txt AC 2 ms 3532 KiB
26.txt AC 2 ms 3572 KiB
27.txt AC 2 ms 3532 KiB
28.txt AC 2 ms 3536 KiB
29.txt AC 2 ms 3528 KiB
30.txt AC 2 ms 3632 KiB
31.txt AC 2 ms 3524 KiB
32.txt AC 2 ms 3640 KiB
33.txt AC 2 ms 3532 KiB
34.txt AC 1 ms 3640 KiB
35.txt AC 2 ms 3588 KiB
36.txt AC 2 ms 3644 KiB
37.txt AC 2 ms 3588 KiB
38.txt AC 2 ms 3512 KiB
39.txt AC 2 ms 3452 KiB