P1019 配对

来源:互联网 发布:plc编程和c语言 编辑:程序博客网 时间:2024/04/29 20:26

又一道acm的题
开始是部分ac,部分wa,最后一部分rte

  1. 首先是wa
    原因在于,我用一个很大的数表示最大,
    解决办法是排序后依次取数

  2. 最后是rte
    原因在于,我开的空间不够
    1000,实际需要10000,少了一个0

下面贴出代码

// 9_P1019 配对.cpp : 定义控制台应用程序的入口点。///*P1019 配对时间: 1000ms / 空间: 131072KiB / Java类名: Main背景太原成成中学第2次模拟赛 第二道描述给出2个序列A={a[1],a[2],…,a[n]},B={b[1],b[2],…,b[n]},从A、B中各选出n个元素进行一一配对(可以不按照原来在序列中的顺序),并使得所有配对元素差的绝对值之和最大。输入格式输入的第1行为1个整数n第2行包含n个整数,题目中的A序列。第3行包含n个整数,题目中的B序列。输出格式一个数,最大配对测试样例1输入42 5 6 31 4 6 7输出14备注3与6配对,2与7配对,5与4配对,6与1配对,绝对值之差和为14对于10%的数据,有n≤20;对于30%的数据,有n≤100;对于50%的数据,有n≤1000;对于100%的数据,有n≤10000;a[i],b[i]≤1000。*/#include "stdafx.h"#include <iostream>#include <cmath>#include <algorithm>using namespace std;;long a[100002], b[100002];long n;int main(){    cin >> n;    for (long i = 0; i < n;i++)    {        cin >> a[i];    }    for (long i = 0; i < n; i++)    {        cin >> b[i];    }    sort(a, a + n);    sort(b, b + n);    long sum = 0;    for (long i = 0; i < n; i++)    {        sum += abs(a[n - i - 1] - b[i]);    }    cout << sum << endl;    return 0;}
0 0
原创粉丝点击