您的位置:首页 > 编程语言 > C语言/C++

CodeForces-339A-Helpful Maths

2014-10-07 21:01 323 查看
A. Helpful Maths

time limit per test
2 seconds

memory limit per test
256 megabytes

input
standard input

output
standard output

Xenia the beginner mathematician is a third year student at elementary school. She is now learning the addition operation.

The teacher has written down the sum of multiple numbers. Pupils should calculate the sum. To make the calculation easier, the sum only contains numbers 1, 2 and 3. Still, that isn't enough for Xenia. She is only beginning to count, so she can calculate a sum
only if the summands follow in non-decreasing order. For example, she can't calculate sum 1+3+2+1 but she can calculate sums 1+1+2 and 3+3.

You've got the sum that was written on the board. Rearrange the summans and print the sum in such a way that Xenia can calculate the sum.

Input

The first line contains a non-empty string s — the sum Xenia needs to count. String s contains
no spaces. It only contains digits and characters "+". Besides, string s is
a correct sum of numbers 1, 2 and 3. String s is at most 100 characters long.

Output

Print the new sum that Xenia can count.

Sample test(s)

input
3+2+1


output
1+2+3


input
1+1+3+1+3


output
1+1+1+3+3


input
2


output
2


#include<iostream>
#include<algorithm>
using namespace std;

int main()
{

int xlist[50];
char ylist[50];
int i = 0;
while (1){
cin >> xlist[i];
ylist[i] = cin.get();
i++;
if (ylist[i-1] == '\n')
break;

}

sort(xlist,xlist+i);
int temp = i;

for (i = 0; i < temp-1; i++){
cout << xlist[i];
cout << ylist[i];
}

cout << xlist[i];

return 0;

}
改进思路:因为式子中的字符只有'+',所以没有必要针对其专门开一个字符数组进行存储,只需用单一字符变量进行存储与判断即可

技巧:1、字符与数字的轮流读入与轮流输出,在输出时将第一个数字输出后再进入循环,然后根据数字数组个数轮流输出。2、cin的读入注意会跳过tab 空格与回车,需要用到cin.get。3、sort函数对数组进行排序的技巧sort(arrayname,arrayname+排序元素个数)

#include<iostream>
#include<algorithm>

using namespace std;

int main()
{
int x[50];
char temp;
int i = 0;

while (1){
cin >> x[i];
i++;
cin.get(temp);
if (temp == '\n')
break;
}
sort(x, x + i);

cout << x[0];
for (int j = 1; j < i; j++){
cout << '+' << x[j];
}
return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  codeforces C++