AOJ 1051 - Citation Format

書くだけ

#include<iostream>
#include<vector>

struct Pages{
	int first, last;
};

std::vector<Pages> v;

void add(int n){
	for(int i=0;i<v.size();i++){
		Pages &p = v[i];
		if(n == p.last + 1){
			p.last = n;
			return;
		}
	}
	v.push_back({n, n});
	return;
}

void print(Pages& p){
	if(p.first == p.last)
		std::cout << p.first;
	else
		std::cout << p.first << "-" << p.last;
}

int main(){
	int n;
	while(std::cin >> n, n){
		v.clear();
		while(n--){
			int i;
			std::cin >> i;
			add(i);
		}
		print(v[0]);
		for(int i=1;i<v.size();i++){
			std::cout << " ";
			print(v[i]);
		}
		std::cout << "\n";
	}
}