程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> Codeforces Beta Round #34 (Div. 2) C. Page Numbers

Codeforces Beta Round #34 (Div. 2) C. Page Numbers

編輯:關於C++

 

C. Page Numbers time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output

«Bersoft» company is working on a new version of its most popular text editor — Bord 2010. Bord, like many other text editors, should be able to print out multipage documents. A user keys a sequence of the document page numbers that he wants to print out (separates them with a comma, without spaces).

Your task is to write a part of the program, responsible for «standardization» of this sequence. Your program gets the sequence, keyed by the user, as input. The program should output this sequence in format l1-r1,l2-r2,...,lk-rk, where ri + 1 < li + 1 for all i from 1 to k - 1, and li ≤ ri. The new sequence should contain all the page numbers, keyed by the user, and nothing else. If some page number appears in the input sequence several times, its appearances, starting from the second one, should be ignored. If for some element i from the new sequence li = ri, this element should be output as li, and not as «li - li».

For example, sequence 1,2,3,1,1,2,6,6,2 should be output as 1-3,6.

Input

The only line contains the sequence, keyed by the user. The sequence contains at least one and at most 100 positive integer numbers. It's guaranteed, that this sequence consists of positive integer numbers, not exceeding 1000, separated with a comma, doesn't contain any other characters, apart from digits and commas, can't end with a comma, and the numbers don't contain leading zeroes. Also it doesn't start with a comma or contain more than one comma in a row.

Output

Output the sequence in the required format.

Sample test(s) Input
1,2,3,1,1,2,6,6,2
Output
1-3,6
Input
3,2,1
Output
1-3
Input
30,20,10
Output
10,20,30

 

題目鏈接:http://codeforces.com/problemset/problem/34/C

題目大意:給一組數字,如果有連續的數字串比如1,2,3,4,就輸出1-4,否則輸出單個的數字,比如1,2,3,10,就輸出1-3,10

解題思路:排序去重,模擬就行。輸入格式處理一下。比較水的題~

代碼如下:

 

#include 
#include 
#include 
#include 
using namespace std;
int a[105];
int main(void)
{
    int n=0,r=0,l=0;  //初始化左右下標
    char x;
    while(scanf(%d,&a[n++]))
    {
        scanf(%c,&x);
        if(x=='
')    //若輸入換行符,結束輸入
            break;
    }
    sort(a,a+n);
    n=unique(a,a+n)-a;
    for(int i=1;il)
        printf(%d-%d,a[l],a[r]);
    else
        printf(%d
,a[l] );
    printf(
,n);
}


 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved