JOJ 2680 Problem F: Coin Game

时间:2022-05-08
本文章向大家介绍JOJ 2680 Problem F: Coin Game,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

题意:给你两组数,第一组按从大到小的顺序给出,第二组随机给,让你求挪动最小的次数使第二组的数字比第一组相对应位置的数字要小,挪动的顺序只能够相邻的挪动

分析:从第一组最后一个数字开始,从第二组最后一个数字开始找,若找到比第一组的小的数,就将他标记且挪动到最后一个位置,无论该数字是否为第二组数中最大的还是最小的都成立,只要他是最近的就可以了,大的满足条件何况小的

#include<stdio.h>
#include<string.h>
int main()
{
    int num1[110],num2[110];
    int i,j,n;
    while(scanf("%d",&n)!=EOF)
    {
        for (i=0; i<n; i++)
            scanf("%d",&num1[i]);
        for (i=0; i<n; i++)
            scanf("%d",&num2[i]);
        int ans=0;
        for (i=n-1; i>=0; i--)
        {
            for (j=n-1; j>=0; j--)
                if(num1[i]<num2[j]) ans++;
                else if(num2[j]!=-1) {num2[j]=-1; break; }
        }
        printf("%dn",ans);
    }
    return 0;
}