第一行输入整数
,表示测试用例数量。
每个测试用例一行输入四个整数
。
对每个测试用例输出一行一个整数,表示 Alex 获胜的翻牌顺序数量。
5 3 8 2 6 1 1 1 1 10 10 2 2 1 1 10 10 3 8 7 2
2 0 4 0 2
考虑第一个测试案例,当Alex开始时有牌值为和
的牌,而Bob开始时有牌值为
和
的牌。游戏可能以
种不同的方式进行:
- Alex 翻,Bob 翻
。Alex 赢了第一轮。然后,Alex 翻
,Bob 翻
。Alex 同样赢得第二轮。由于 Alex 赢了
个回合,所以他赢得了游戏。
- Alex 翻转,Bob 翻转
。Bob赢得第一轮。然后,Alex 翻
,Bob 翻
。Alex 赢第二轮。由于双方赢得的回合数相同,因此没有人获胜。
- Alex 翻转,Bob 翻转
。Alex 赢了第一轮。然后,Alex 翻出
,Bob 翻出
。Alex 同样赢得第二轮。由于 Alex 赢了
轮,所以他赢得了游戏。
- Alex 翻转,Bob 翻转
。Alex 赢了第一轮。然后,Alex 翻
,Bob 翻
。Bob赢得这一轮。由于双方赢得的回合数相同,因此没有人获胜。
所以,最终Alex会赢的可能情况只有种。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int t = scanner.nextInt();
while (t-- > 0) {
int a1 = scanner.nextInt();
int a2 = scanner.nextInt();
int b1 = scanner.nextInt();
int b2 = scanner.nextInt();
int count = 0;
// Alex的两种翻牌顺序
int[][] alexOrders = {{a1, a2}, {a2, a1}};
// Bob的两种翻牌顺序
int[][] bobOrders = {{b1, b2}, {b2, b1}};
// 遍历所有可能的翻牌顺序组合
for (int[] alex : alexOrders) {
for (int[] bob : bobOrders) {
// 计算双方赢得的回合数
int alexWins = 0;
int bobWins = 0;
if (alex[0] > bob[0]) {
alexWins++;
} else if (alex[0] < bob[0]) {
bobWins++;
}
if (alex[1] > bob[1]) {
alexWins++;
} else if (alex[1] < bob[1]) {
bobWins++;
}
// 当Alex赢得的回合数多于Bob时,才是Alex获胜
if (alexWins > bobWins) {
count++;
}
}
}
System.out.println(count);
}
scanner.close();
}
}
def main(): t = int(input()) for _ in range(t): array = list(map(int,input().split())) ans = 0 if array[0] > array[2] and array[1] > array[3]&nbs***bsp;array[0] > array[2] and array[1] == array[3]&nbs***bsp;array[0] == array[2] and array[1] > array[3]: ans+=1 if array[0] > array[3] and array[1] > array[2]&nbs***bsp;array[0] > array[3] and array[1] == array[2]&nbs***bsp;array[0] == array[3] and array[1] > array[2]: ans+=1 if array[1] > array[2] and array[0] > array[3]&nbs***bsp;array[1] > array[2] and array[0] == array[3]&nbs***bsp;array[1] == array[2] and array[0] > array[3]: ans+=1 if array[1] > array[3] and array[0] > array[2]&nbs***bsp;array[1] > array[3] and array[0] == array[2]&nbs***bsp;array[1] == array[3] and array[0] > array[2]: ans+=1 print(ans) if __name__ == '__main__': main()
#include <bits/stdc++.h>
using namespace std;
int ok;
int a[2],b[2];
bool x[2],y[2];
void dfs(int n,int sum,int s){
if(n>=2){
if(sum>=2) ok++;
if(sum==1&&s==1) ok++;
return;
}
for(int i=0;i<2;i++){
if(!x[i]){
x[i]=1;
for(int j=0;j<2;j++){
if(!y[j]){
y[j]=1;
if(a[i]>b[j]) dfs(n+1,sum+1,s);
else if(a[i]==b[j]) dfs(n+1,sum,s+1);
else{
y[j]=0;
continue;
}
y[j]=0;
}
}
x[i]=0;
}
}
return;
}
int main() {
int t;cin>>t;
while(t--){
ok=0;
for(int i=0;i<2;i++){
cin>>a[i];
x[i]=0;
}
for(int i=0;i<2;i++){
cin>>b[i];
y[i]=0;
}
dfs(0,0,0);
cout<<ok<<'\n';
}
return 0;
}
// 64 位输出请用 printf("%lld") #include <iostream>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int t,a1,a2,b1,b2,n;
cin>>t;
while(t--){
cin>>a1>>a2>>b1>>b2;
n=0;
if((a1>b1&&a2>=b2)||(a1>=b1&&a2>b2))
n+=2;
if((a1>b2&&a2>=b1)||(a1>=b2&&a2>b1))
n+=2;
cout<<n<<'\n';
}
} import sys
def solve(nums:list)->str:
a1,a2,b1,b2 = nums
a_cnt = 0
b_cnt = 0
a_win = 0
if a1 > b1:
a_cnt+=1
elif b1 > a1:
b_cnt+=1
if a2 > b2:
a_cnt+=1
elif b2 > a2:
b_cnt+=1
if a_cnt > b_cnt:
a_win += 2
a_cnt = 0
b_cnt = 0
if a1 > b2:
a_cnt+=1
elif b2 > a1:
b_cnt+=1
if a2 > b1:
a_cnt+=1
elif b1 > a2:
b_cnt+=1
if a_cnt > b_cnt:
a_win += 2
return str(a_win)
n = input()
nums_list = [list(map(int,nums.split())) for nums in sys.stdin]
output = list(map(solve,nums_list))
print('\n'.join(output))
#include <iostream>
using namespace std;
int winc(int a1, int a2, int b1, int b2) {
int aw = 0, bw = 0;
if ((a1 > b1 && a2 > b2) || (a1 == b1 && a2 > b2) || a1 > b1 &&
a2 == b2 ) aw += 2;
if ((a1 > b2 && a2 > b1) || (a1 == b2 && a2 > b1) || (a1 > b2 &&
a2 == b1)) aw += 2;
return aw;
}
int main() {
int n;
cin >> n;
while (n--) {
int a1, a2, b1, b2;
cin >> a1 >> a2 >> b1 >> b2;
cout << winc(a1, a2, b1, b2) << endl;
}
}