Codeforces挑战784F需要进行哪些更改?

时间:2017-04-05 06:13:53

标签: c++ sorting

链接到相关问题:http://codeforces.com/problemset/problem/784/F

它只是一个排序问题所以我在我的阵列上使用冒泡排序。但是,当我提交我的答案时,它仍然拒绝测试1,即使它在我运行时工作得很好。我确保为代码选择了正确的编译器,这样就不是问题了。我的代码有问题吗?

这是我的代码:

int arr[10];

/* number of inputs */
int n;
cin >> n;

/* inputting n numbers to the array */
for (int i = 0; i < n; ++i)
    cin >> arr[i];

/* bubble sort array */
for (int i = 0; i < n - 1; ++i) {
    for (int j = 0; j < n - i - 1; ++j) {
        if (arr[j] > arr[j+1]) {
            int temp = arr[j];
            arr[j] = arr[j+1];
            arr[j + 1] = temp;
        }
    }
}

/* printing all the numbers in array */
for (int i = 0; i < n; ++i) {
    cout << arr[i] << ' ';
}
cout << endl;

1 个答案:

答案 0 :(得分:0)

您不需要实现自己的一切,只需使用标准库:

// number of inputs
int n;
std::cin >> n;

// Vector storing the numbers
std::vector<int> v(n);

// Input n numbers
for (int i = 0; i < n; ++i)
{
    std::cin >> arr[i];
}

// Sort the numbers
std::sort(v.begin(), v.end());

// Removed all duplicates (all numbers are unique)
auto last = std::unique(v.begin(), v.end());
v.erase(last, v.end()); 

// Print all the numbers
for (int i : v)
  std::cout << i << ' ';
std::cout << std::endl;