• CodeForces 1324D


    The next lecture in a high school requires two topics to be discussed. The i-th topic is interesting by ai units for the teacher and by bi units for the students.

    The pair of topics i and j (i<j) is called good if ai+aj>bi+bj (i.e. it is more interesting for the teacher).

    Your task is to find the number of good pairs of topics.

    Input

    The first line of the input contains one integer n (2≤n≤2⋅105) — the number of topics.

    The second line of the input contains n integers a1,a2,…,an (1≤ai≤109), where ai is the interestingness of the i-th topic for the teacher.

    The third line of the input contains n integers b1,b2,…,bn (1≤bi≤109), where bi is the interestingness of the i-th topic for the students.

    Output

    Print one integer — the number of good pairs of topic.

    Examples Input

    5
    4 8 2 6 2
    4 5 4 1 3

    Output

    7

    Input

    4
    1 3 2 4
    1 3 2 4

    Output

    0

    题目大意:给出两个数组,求ai+aj>bi+bj的种数。

    解题思路:ai+aj>bi+bj可以转化为ai-bi+aj-bj>0的种数。我们开三个数组,一个用于存放a,一个用于存放b,最后一个数组c用来存放ai-bi的值。我们给c数组从小到大排个序,每次查找比 -ci 大的值,这样ci+cj一定大于0。
    PS:其实不用考虑 i<j 因为 i != j 所以随便找出两个数,他们的编号必须是一个大一个小。AC代码:

    #include <cstdio>
    #include <iostream>
    #include <algorithm>
    using namespace std;
    const int _max=2e5+50;
    using LL = long long;
    LL a[_max],b[_max],c[_max];
    int main()
    {
    	int n;
    	cin>>n;
    	for(int i=0;i<n;i++)
    	  cin>>a[i];
    	for(int i=0;i<n;i++)
    	{
    		cin>>b[i];
    		c[i]=a[i]-b[i];
    	}
    	sort(c,c+n);
    	LL ans=0;
    	for(int i=0;i<n;i++)
    	{
    		int x=upper_bound(c+i+1,c+n,-c[i])-c;
    		if(x>=n)//如果找不到返回最后一个地址+1 
    		  continue;
    		else
    		  ans+=n-x;//因为一共n个数,所以用n-x就得到数量了
    	}
    	cout<<ans<<endl;
    	//system("pause");
    	return 0;
    }
    
  • 相关阅读:
    在VS2010中如何添加MSCOMM控件,实现串口通讯
    GroupBox与Panel控件
    如何在VS2010中添加ActiveX控件及使用方法
    如何在vs2010中添加Picture控件
    四线开发经验谈
    socket 、 udp 和 tcp
    文本文件与二进制文件
    文件读写 (流)
    [CTSC1999]家园
    洛谷 P1251 餐巾计划问题
  • 原文地址:https://www.cnblogs.com/Hayasaka/p/14294293.html
Copyright © 2020-2023  润新知