Problem hidden
|This problem was hidden by Editorial Board member probably because it has incorrect language|version or invalid test data, or description of the problem is not clear.|

JOIN_NUM - Ghép số

Vaxia đã viết được một số lớn trên một cuộn giấy dài và muốn khoe với anh trai Petia về thành quả vừa đạt được. Tuy nhiên,  khi Vaxia vừa ra khỏi phòng để gọi anh trai thì cô em Kachia chạy vào phòng và xé rách cuộn giấy thành một số mảnh. Kết quả là trên mỗi mảnh có một hoặc vài kí số theo thứ tự đã viết.

Bây giờ Vaxia không thể nhớ chính xác mình đã viết số gì. Vaxia chỉ nhớ rằng đó là một số rất lớn.

Để làm hài lòng cậu em trai, Petia quyết định truy tìm  số nào là lớn nhất mà Vaxia đã có thể viết lên cuộn giây trước khi bị xé. Bạn hãy giúp Petia làm việc này.

Dữ liệu vào: từ file NUMCON.INP:

Ghi một hoặc nhiều dòng. Mỗi dòng ghi một dãy kí số. Số dòng không vượt quá 100. Mỗi dòng ghi từ 1 đến 100 kí số. Bảo đảm rằng có ít nhất một dòng mà kí số đầu tiên khác 0.

Dữ liệu ra: ghi ra file NUMCON.INP: số lớn nhất đã có thể viết trên cuộn giấy trước khi bị xé rách.

Ví dụ:

 

NUMCON.INP

NUMCON.OUT

          2
          20
          004
          66

          66220004


Được gửi lên bởi:Vương Trung Hiếu Nghĩa
Ngày:2015-12-08
Thời gian chạy:1s
Giới hạn mã nguồn:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Ngôn ngữ cho phép:C++ 4.3.2 CPP CPP14 PAS-GPC PAS-FPC

hide comments
2015-12-12 04:38:24
#include <bits/stdc++.h>

using namespace std;
string a[201];
int n;
void mtp(string &a, string &b)
{
string tg=a;
a=b;
b=tg;
}
int main()
{
// freopen("GHEPSO.INP","r",stdin);//
//freopen("GHEPSO.OUT","w",stdout);//
string s;
while (getline(cin,s))
{
n++;
a[n]=s;
}
for (int i=1;i<n;i++)
{
for (int j=i+1;j<=n;j++)
{
if ((a[i]+a[j])<(a[j]+a[i])) mtp(a[i],a[j]);
}
}
for (int i=1;i<=n;i++) cout << a[i];
return 0;
}
//Ý tưởng//
//Xét a[i] và a[j] nhưng a[i] phải đứng trước a[j].//
//Nếu (a[i] ghép trước a[j]) < (a[j] ghép trước a[i]) thì đổi chỗ a[i] với a[j]//
2015-12-12 04:38:23
#include <bits/stdc++.h>

using namespace std;
string a[201];
int n;
void mtp(string &a, string &b)
{
string tg=a;
a=b;
b=tg;
}
int main()
{
// freopen("GHEPSO.INP","r",stdin);//
//freopen("GHEPSO.OUT","w",stdout);//
string s;
while (getline(cin,s))
{
n++;
a[n]=s;
}
for (int i=1;i<n;i++)
{
for (int j=i+1;j<=n;j++)
{
if ((a[i]+a[j])<(a[j]+a[i])) mtp(a[i],a[j]);
}
}
for (int i=1;i<=n;i++) cout << a[i];
return 0;
}
//Ý tưởng//
//Xét a[i] và a[j] nhưng a[i] phải đứng trước a[j].//
//Nếu (a[i] ghép trước a[j]) < (a[j] ghép trước a[i]) thì đổi chỗ a[i] với a[j]//
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.