1 条题解

  • 1
    @ 2023-10-28 11:52:31

    完整版题解

    #include<bits/stdc++.h>
    using namespace std;
    int n,
    	a[2001],	//田忌的马
    	b[2001],	//齐王的马
    	m1,
    	m2,
    	qian;
    int main(){
    	scanf("%d",&n);
    	for(int i=0;i<n;i++) scanf("%d",&a[i]);
    	for(int i=0;i<n;i++) scanf("%d",&b[i]);
    	sort(a,a+n);
    	sort(b,b+n);
    	int n1=n-1,
    		n2=n-1;
    	while(m1<=n1){
    		if(a[n1]>b[n2]){	//田忌最快的比齐王最快的快
    			qian+=200;		//赢钱
    			n1--,n2--;		//两边各去掉一匹马
    		}else if(a[n1]<b[n2]){//田忌最快的赢不了齐王最快的,就丢一匹最慢的
    			qian-=200;		  //输钱
    			m1++,n2--;
    		}else{				  //如果 势 均 力 敌 的话
    			if(a[m1]>b[m2]){  //田忌最慢的能赢齐王最慢的,就上
    				qian+=200;	  //赢钱
    				m1++,m2++;	  
    			}else{			  //赢不了就用最慢的消耗齐王最快的
    				if(a[m1]<b[n2]) qian-=200;	//我 再 忍 你 一 手
    					m1++,n2--;
    			}
    			
    		}
    	}
    	printf("%d",qian);
    	return 0;
    }
    
    • 1

    信息

    ID
    644
    时间
    1000ms
    内存
    125MiB
    难度
    4
    标签
    递交数
    6
    已通过
    1
    上传者