P1403 [AHOI2005]约数研究

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Merry2004/article/details/79307721
#include<bits/stdc++.h>
using namespace std;
int h[2004]={0},n,ch=1,qih=1;
int s[2004]={0},m,cs=1,qis=1;
int cmp(const int & a,const int & b)
{
    return a>=b;
}
int main()
{
    long long ans=0;
    scanf("%d%d",&n,&m);
    for(int i=1;i<n;i++)
        scanf("%d",h+i);
    for(int i=1;i<m;i++)
        scanf("%d",s+i);
    sort(h+1,h+n,cmp);
    sort(s+1,s+m,cmp);
    while(qih<n&&qis<m)
    {
        if(h[qih]>s[qis])
        {
            ans+=h[qih++]*(ch);cs++;
        }
        else if(h[qih]<s[qis])
        {
            ans+=s[qis++]*(cs);ch++;
        }
        else
        {
            if(cs>=ch)
            {
                ans+=h[qih++]*(ch);cs++;
            }
            else
            {
                ans+=s[qis++]*(cs);ch++;
            }
        }
    }
    while(qih<n) ans+=h[qih++]*ch;
    while(qis<m) ans+=s[qis++]*cs;
    printf("%lld",ans);
    return 0;
}
展开阅读全文

没有更多推荐了,返回首页