#include <stdio.h>
#include <stdbool.h>
void printRange(int sortedArray[], int len) {
int i, current, next, printStart, printEnd, startIndex = 0;
bool print = false;
for (i = 0; i < len; i++) {
printStart = sortedArray[startIndex];
printEnd = sortedArray[i];
current = sortedArray[i];
next = sortedArray[i + 1];
if (next - current != 1) {
startIndex = i + 1;
print = true;
}
if (print) {
if (printStart - printEnd == 0) {
} else {
printf("%d-%d,", printStart
, printEnd
); }
print = false;
}
}
}
int main() {
int sortedArray[] = { 1, 3, 4, 5, 7, 8, 9 };
int len = sizeof(sortedArray) / sizeof(sortedArray[0]);
printRange(sortedArray, len);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRib29sLmg+Cgp2b2lkIHByaW50UmFuZ2UoaW50IHNvcnRlZEFycmF5W10sIGludCBsZW4pIHsKCWludCBpLCBjdXJyZW50LCBuZXh0LCBwcmludFN0YXJ0LCBwcmludEVuZCwgc3RhcnRJbmRleCA9IDA7Cglib29sIHByaW50ID0gZmFsc2U7CgoJZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKSB7CgkJcHJpbnRTdGFydCA9IHNvcnRlZEFycmF5W3N0YXJ0SW5kZXhdOwoJCXByaW50RW5kID0gc29ydGVkQXJyYXlbaV07CgoJCWN1cnJlbnQgPSBzb3J0ZWRBcnJheVtpXTsKCQluZXh0ID0gc29ydGVkQXJyYXlbaSArIDFdOwoKCQlpZiAobmV4dCAtIGN1cnJlbnQgIT0gMSkgewoJCQlzdGFydEluZGV4ID0gaSArIDE7CgkJCXByaW50ID0gdHJ1ZTsKCQl9CgoJCWlmIChwcmludCkgewoJCQlpZiAocHJpbnRTdGFydCAtIHByaW50RW5kID09IDApIHsKCQkJCXByaW50ZigiJWQsIiwgcHJpbnRTdGFydCk7CgkJCX0gZWxzZSB7CgkJCQlwcmludGYoIiVkLSVkLCIsIHByaW50U3RhcnQsIHByaW50RW5kKTsKCQkJfQoJCQlwcmludCA9IGZhbHNlOwoJCX0KCX0KfQoKaW50IG1haW4oKSB7CglpbnQgc29ydGVkQXJyYXlbXSA9IHsgMSwgMywgNCwgNSwgNywgOCwgOSB9OwoJaW50IGxlbiA9IHNpemVvZihzb3J0ZWRBcnJheSkgLyBzaXplb2Yoc29ydGVkQXJyYXlbMF0pOwoJcHJpbnRSYW5nZShzb3J0ZWRBcnJheSwgbGVuKTsKCXJldHVybiAwOwp9Cg==