1. 题目

传送门= ̄ω ̄=

2. 题解

搞两个链表存两个人马的速度
输入完了以后排序
然后对链表 1 进行 n 次滚动 (即把链表 1 的首部元素接到链表 1 末尾),每次移动以后判断当前答案。
最后取答案最大值。
ans 的初始值一开始我设置为 INT_MIN,这样在 luogu 上能 ac,但在 codevs 上会 wa 两个点。
看了下数据,可能是标程的问题吧(不清楚),把 ans 的初始值设置为 0 就能过了(可能标程里 ans 初始值就是 0)。

代码:

#include <bits/stdc++.h>
using namespace std;
int n,ans;
list<int> l1,l2;
void update()
{
    int k=0;
    for(list<int>::iterator i1=l1.begin(),i2=l2.begin();i1!=l1.end();i1++,i2++)
        if(*i1>*i2)k++;else if(*i1<*i2)k--;
    ans=max(ans,k);
}
int main()
{
    scanf("%d",&n);
    for(int i=1,a;i<=n;i++)scanf("%d",&a),l1.push_back(a);
    for(int i=1,a;i<=n;i++)scanf("%d",&a),l2.push_back(a);
    l1.sort(),l2.sort();
    for(int i=1;i<=n;i++)l1.push_back(*l1.begin()),l1.pop_front(),update();
    printf("%d\n",ans*200);
    return 0;
}
分类: 文章

XZYQvQ

炒鸡辣鸡的制杖蒟蒻一枚QvQ

0 条评论

发表回复

Avatar placeholder

您的电子邮箱地址不会被公开。 必填项已用 * 标注