//SequentialList – Value Statistics2

#include <iostream>

using namespace std;

#define eleType double

struct SequentialList {

eleType* elements;

int size;

int capacity;

};

void InitialList(SequentialList* list, int capacity) {

list->elements = new eleType[capacity];

list->size = 0;

list->capacity = capacity;

}

void DestroyList(SequentialList* list) {

delete[] list->elements;

}

bool IsEmpty(SequentialList* list) {

return list->size == 0;

}

int Size(SequentialList* list) {

return list->size;

}

void InsertElement(SequentialList* list, int index, eleType element) {

if (index <0 || index > list->size) {

throw std::invalid_argument(“invalid index”);

}

if (list->size == list->capacity) {

int Newcapacity = list->capacity * 2;

eleType* NewList = new eleType[Newcapacity];

for (int i = 0; i < list->size; i++) {

NewList[i] = list->elements[i];

}

delete[] list->elements;

list->elements = NewList;

list->capacity = Newcapacity;

}

for (int i = list->size; i > index; i–) {

list->elements[i] = list->elements[i – 1];

}

list->elements[index] = element;

list->size++;

}

void DeleteElement(SequentialList* list, int index) {

if (index < 0 || index >= list->size) {

throw std::invalid_argument(“invalid index”);

}

for (int i = index; i < list->size – 1; i++) {

list->elements[i] = list->elements[i + 1];

}

list->size–;

}

int FindIndexOfElement(SequentialList* list, eleType element) {

for (int i = 0; i < list->size; i++) {

if (element == list->elements[i]) {

return i;

}

}

return -1;

}

eleType GetElement(SequentialList* list, int index) {

if (index < 0 || index >= list->size) {

throw std::invalid_argument(“invalid index”);

}

return list->elements[index];

}

void UpdateElement(SequentialList* list, int index, eleType element) {

if (index < 0 || index >= list->size) {

throw std::invalid_argument(“invalid index”);

}

list->elements[index] = element;

}

int main() {

int n;

SequentialList s;

while (cin >> n && n) {

InitialList(&s, 1);

for (int i = 0; i < n; ++i) {

eleType x;

cin>>x;

InsertElement(&s, i, x);

}

int ncnt=0, zcnt=0, pcnt=0;

for (int i = 0; i < s.size; ++i) {

eleType num;

num = GetElement(&s, i);

if (num > 1e-8) {

pcnt++;

}

else if (num < -1e-8) {

ncnt++;

}

else {

zcnt++;

}

}

cout << ncnt << ‘ ‘ << zcnt << ‘ ‘ << pcnt<<endl;

}

return 0;

}