后面不会写了,求指点
查看原帖
后面不会写了,求指点
1191207
wmhwuminhao楼主2024/3/2 12:42
#include <bits/stdc++.h>
#define ll long long
using namespace std ;
struct c {
	ll f , p ;
} fs[110] , xf[110] ;
bool cmp ( c x , c y ) {
	if ( x.p == y.p ) return x.f < y.f ;
	else return x.p < y.p ;
}
ll t , n , m , r , s ;
void jp ( int p , c x ) ;
void cp ( int p ) {
	int flag = 1 ;
	if ( p == 1 ) {
		for ( int i = 1 ; i <= n ; i++ ) {
			if ( fs[i].f != 0 ) {
				c temp = fs[i] ;
				flag = 1 ;
				fs[i].f = 0;
				jp ( 2 , temp ) ;
			}
		}
		if ( !flag ) {
			cout << "FS wins!\n" ;
			return ;
		}
	} else {
		for ( int i = 1 ; i <= n ; i++ ) {
			if ( fs[i].f != 0 ) {
				c temp = xf[i] ;
				flag = 1 ;
				xf[i].f = 0;
				jp ( 2 , temp ) ;
			}
		}
		if ( !flag ) {
			cout << "FR wins!\n" ;
			return ;
		}
	}
}
void jp ( int p , c x ) {
	int flag = 0 ;
	if ( p == 1 ) {
		for ( int i = 1 ; i <= n ; i++ ) {
			if ( xf[i].f == x.f && xf[i].p > x.p ) {
				flag = 1 ;
				c temp = fs[i] ;
				fs[i].f = 0 ;
				jp ( 2 , temp ) ;
			}
		}
		if ( !flag ) cp ( 2 ) ;
	} else {
		for ( int i = 1 ; i <= n ; i++ ) {
			if ( fs[i].f == x.f && fs[i].p > x.p ) {
				flag = 1 ;
				c temp = xf[i] ;
				xf[i].f = 0 ;
				jp ( 2 , temp ) ;
			}
		}
		if ( !flag ) cp ( 2 ) ;
	}
}
int main() {
	cin >> t ;
	while ( t-- ) {
		cin >> n >> m >> r >> s ;
		for ( ll i = 1 ; i <= n ; i++ ) cin >> fs[i].f ;
		for ( ll i = 1 ; i <= n ; i++ ) cin >> fs[i].p ;
		for ( ll i = 1 ; i <= n ; i++ ) cin >> xf[i].f ;
		for ( ll i = 1 ; i <= n ; i++ ) cin >> xf[i].p ;
		sort ( fs + 1 , fs + 1 + n , cmp ) ;
		sort ( xf + 1 , xf + 1 + n , cmp ) ;
	}
	
	return 0 ;
}
2024/3/2 12:42
加载中...