3 条题解

  • 0
    @ 2026-5-22 21:21:37
    #include<bits/stdc++.h>
    using namespace std;
    const int SB=2e3+5;
    int a[SB],b[SB],n,sum;
    bool cmp(int a,int b){
    	return a>b;
    }
    int main(){
    	for(cin>>n;n!=0;cin>>n){
    		for(int i=1;i<=n;i++){
    			cin>>a[i];
    		}
    		for(int i=1;i<=n;i++){
    			cin>>b[i];
    		}
    		sort(a+1,a+n+1,cmp);
    		sort(b+1,b+n+1,cmp);
    		int l1=1,l2=1,r1=n,r2=n;
    		sum=0;
    		while(l1<=r1){
    			if(a[l1]>b[l2]){
    				sum+=200;
    				l1++;
    				l2++;
    			}else if(a[r1]>b[r2]){
    				sum+=200;
    				r1--;
    				r2--;	
    			}else{
    				if(a[r1]<b[l2]){
    					sum-=200;
    				}
    				r1--;
    				l2++;
    			}	
    		}
    		cout<<sum<<endl;
    	}
    	return 0;
    }
    
    • 0
      @ 2023-11-29 18:47:43
      #include <bits/stdc++.h>
      using namespace std;
      const int N=2e3+10;
      const int INF=0x3f3f3f3f;
      int n,a[N],b[N],ans; 
      int main()
      {
      	while(cin>>n)
      	{
      		if(!n)
      		{
      			break;
      		}
      		for(int i=1;i<=n;i++)
      		{
      			cin>>a[i];
      		}
      		for(int i=1;i<=n;i++)
      		{
      			cin>>b[i];
      		}
      		sort(b+1,b+n+1);
      		sort(a+1,a+n+1);
      		ans=0;
      		int fa=n;
      		int fb=n;
      		int la=1;
      		int lb=1;
      		while(fa>=la)
      		{
      			if(a[fa]>b[fb])
      			{
      				ans+=200;
      				fa--;
      				fb--;
      			}
      			else if(a[la]>b[lb])
      			{
      				ans+=200;
      				la++;
      				lb++;
      			}
      			else
      			{
      				if(a[la]<b[fb])ans-=200;
      				la++;
      				fb--;
      			}
      		}
      		cout<<ans<<endl;
      	}
      	return 0;
      }
      
      • 0
        @ 2022-11-24 14:49:56

        #include<bits/stdc++.h>

        using namespace std;

        int a[1001],b[1001],n,i,j,ans=0;

        int cmp(int x,int y){ //排序

        return x>y;
        

        }

        int main(){

        while(cin>>n&&n!=0){
        	for(i=1;i<=n;i++){
        		cin>>a[i];
        	}
        	for(i=1;i<=n;i++){
        		cin>>b[i];
        	}
        	sort(a+1,a+n+1,cmp);
        	sort(b+1,b+n+1,cmp);
        	int qa,qb,la,lb; //定义田忌和齐王的最快马和最慢马位置
        	ans=0;
        	qa=1;
        	qb=1;
        	la=n;
        	lb=n;
        	for(i=1;i<=n;i++){
        		if(a[qa]>b[qb]){ //如果田忌的最快马比齐王的快,这两匹马就废了,加黄金
        			qa++;
        			qb++;
        			ans+=200;
        		}
        		else if(a[la]>b[lb]){  //如果最慢马比齐王的快,同样赢了
        			ans+=200;
        			la--;
        			lb--;
        		}
        		else{
        			if(a[la]<b[qb]){ // //否则就把最慢马和最快马比,废了齐王的马,减金币
        				la--;
        				qb++;
        				ans-=200;
        			}
        		}
        	}
        	cout<<ans<<endl;
        }
        return 0;
        

        }

        • 1

        信息

        ID
        1701
        时间
        1000ms
        内存
        256MiB
        难度
        5
        标签
        递交数
        101
        已通过
        37
        上传者