文章

0

粉丝

0

获赞

0

访问

1216

头像
1544合并果子 测试数据有问题吧
我要提问
发布于2022年3月12日 13:12
阅读数 1216

通过20%,提示的测试数据感觉有问题,在vs上即使是accept的代码也用过不了这个测试数据

输入数据

10000
1952 1927 1932 1922 1961 1926 1927 1909 1959 1955 1901 1997 1940 1944 1992 1985 1934 1989 1983 1919 1996 1995 1911 1985 1905 1950 1982 1906 1958 1905 1938 1946 1994 1979 1977 1939 1992 1948 1929 1920 1918 1956 1927 1919 1911 1977 1932 1925 1952 1905 1997 1964 1936 1950 1984 1926 1946 1980 1973 1933 1916 1923 1911 1953 1998 1928 1903 1978 1907 1938 1943 1943 1983 1941 1930 1933 1902 1985 1924 1921 1938 1982 1933 1931 1924 1943 1936 1907 1906 1996 1981 1953 1963 1909 1926 1955 1934 1999 1988 1909 1988

你的输出

102930232

正确输出

260332759

 

我的代码如下

#include <iostream>
#include <algorithm>
#include <string.h>
using namespace std;

bool cmp(int x, int y) {
    return x < y;
}
int main() {
    int n;
    cin >> n;
    //int* a = (int*)malloc(n * sizeof(int));
    int a[10001];
    memset(a, 0, sizeof(a));
    for (int i = 0; i < n; i++) {
        cin >> a[i];
    }
    if (n == 1) {
        cout << a[0] << endl;
        return 0;
    }
    sort(a, a + n, cmp);
    int res = 0;
    for (int i = 0; i < n - 1; i++) {
        a[0] += a[1];
        a[1] = 20001;
        res += a[0];
        //sort(a,a+n,cmp);
        for (int j = 1; j >= 0; j--) {
            int temp = a[j];
            for (int k = j+1; k <n; k++) {
                
                if (a[k] < temp) {
                    a[k - 1] = a[k];
                    if (k == n - 1) {
                        a[k] = temp;
                    }
                }
                else {
                    a[k - 1] = temp;
                    break;
                }
            }
        }
    }
    cout << res << endl;
}
 



登录后发布评论

1 条评论
snake
2022年6月12日 20:24

这个数据是没有显示的完的,看输入就知道有一万个数了。

你这个算法明显有问题呀。。。

这道题有很多大佬写的有题解的:https://noobdream.com/solution_list/1544/

赞(0)