2 条题解

  • 0
    #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
      难度
      8
      标签
      递交数
      12
      已通过
      8
      上传者