关于跑一遍的次数的疑惑
  • 板块P1650 田忌赛马
  • 楼主xi_11
  • 当前回复5
  • 已保存回复5
  • 发布时间2022/10/8 09:02
  • 上次更新2023/10/27 08:13:44
查看原帖
关于跑一遍的次数的疑惑
676490
xi_11楼主2022/10/8 09:02
#include<bits/stdc++.h>
using namespace std;
int n;
int a[30000],b[30000];
int h1,h,t1,t;
int sum;

int main(){
   scanf("%d",&n);
   for(int i=1;i<=n;i++) scanf("%d",&a[i]);
   for(int i=1;i<=n;i++) scanf("%d",&b[i]);
   sort(a+1,a+1+n);
   sort(b+1,b+1+n);
   h=h1=1;
   t=t1=n;
   int cnt=0;
   
while(h<=t){
         cnt++;	
   	 if(a[t]>b[t1]){
   	 	 sum+=200;
   	 	 t--;
   	 	 t1--;
		}
     if(a[t]<b[t1]){
     	sum-=200;
     	h++;
     	t1--;
	 }
	 if(a[t]==b[t1]){
	 	if(a[h]>b[h1]){
	 		sum+=200;
	 		h++;
	 		h1++;
		 }
             else{
             	if(a[h]<b[t1]) sum-=200;
             	h++;
             	t1--;
			 }
	 }
}
   cout<<sum;
   
}

RT,然而我如果把while改成for 1~n就会wa掉,不理解

2022/10/8 09:02
加载中...