zoukankan      html  css  js  c++  java
  • COGS 610 数对的个数

       输入文件:dec.in   输出文件:dec.out   简单对比
    时间限制:1 s   内存限制:128 MB

    Description
    出题是一件痛苦的事情!
    题目看多了也有审美疲劳,于是我舍弃了大家所熟悉的A+B Problem,改用A-B了哈哈!

    好吧,题目是这样的:给出一串数以及一个数字C,要求计算出所有A-B=C的数对的个数。

    (不同位置的数字一样的数对算不同的数对)
    Input Format
    第一行包括2个非负整数N和C,中间用空格隔开。
    第二行有N个整数,中间用空格隔开,作为要求处理的那串数。
    Output Format
    输出一行,表示该串数中包含的所有满足A-B=C的数对的个数。
    Sample Input
    4 1
    1 1 2 3
    Sample Output
    3
    Data Limit
    对于90%的数据,N <= 2000;
    对于100%的数据,N <= 200000。
    所有输入数据都在longint范围内。

    #include<algorithm>
    #include<iostream>
    #include<cstdio>
    #include<map>
    using namespace std;
    map<int,int>ma;
    int n,c,ans;
    int a[200005],sum[2000005];
    int main()
    {
        //freopen("dec.in","r",stdin);
        //freopen("dec.out","w",stdout);
        cin>>n>>c;
        for(int i=1;i<=n;i++)
        {
            cin>>a[i];
            ma[a[i]]=1;
            sum[a[i]]++;
        }
        sort(a+1,a+n+1);
        for(int i=1;i<=n;i++)
        {
            if(ma[c+a[i]]) ans+=sum[a[i]+c];
        }
        cout<<ans;
        return 0;
    }
  • 相关阅读:
    穷举、迭代、以及while代替for循环的使用
    for循环与for循环嵌套
    day07 数据类型补充
    day06
    day05
    day04
    python2 和 python3 的区别
    day03
    第一周笔记
    day02笔记
  • 原文地址:https://www.cnblogs.com/chen74123/p/6730158.html
Copyright © 2011-2022 走看看