#include <stdio.h>
#include <stdlib.h>
void
MaximumProduct(
int
a[],
int
n)
{
int
cntneg = 0;
int
cntzero = 0;
int
used[n];
for
(
int
i = 0; i < n; i++)
{
used[i] = 0;
}
int
pos = -1;
for
(
int
i = 0; i < n; ++i) {
if
(a[i] == 0) {
used[i] = 1;
cntzero++;
}
if
(a[i] < 0) {
cntneg++;
if
(pos == -1 ||
abs
(a[pos]) >
abs
(a[i]))
pos = i;
}
}
if
(cntneg % 2 == 1)
used[pos] = 1;
if
(cntzero == n || (cntzero == n - 1 &&
cntneg == 1)) {
for
(
int
i = 0; i < n - 1; ++i)
printf
(
"%d %d %d\n"
, 1, i + 1, i + 2);
return
;
}
int
lst = -1;
for
(
int
i = 0; i < n; ++i) {
if
(used[i]) {
if
(lst != -1)
printf
(
"%d %d %d\n"
, 1, lst+1, i+1);
lst = i;
}
}
if
(lst != -1)
printf
(
"%d %d\n"
, 2, lst + 1);
lst = -1;
for
(
int
i = 0; i < n; ++i) {
if
(!used[i]) {
if
(lst != -1)
printf
(
"%d %d %d\n"
, 1, lst + 1, i+1);
lst = i;
}
}
}
int
main()
{
int
a[] = { 5, -2, 0, 1, -3 };
int
n =
sizeof
(a) /
sizeof
(a[0]);
MaximumProduct(a, n);
return
0;
}