NC248194. 先交换
描述
输入描述
每一个测试点包含多组测试数据,第一行输入一个正整数 ,表示该测试点测试数据的数量。
对于每组测试数据:
第一行输入一个正整数 。
第二行输入 个整数以空格相隔,第 个整数表示 。
输出描述
对于每组测试数据,一行输出一个整数,表示最少的操作次数使得 为奇数,若无解则输出 -1。
示例1
输入:
3 3 1 2 3 2 0 1 2 2 1
输出:
0 -1 1
Java 解法, 执行用时: 597ms, 内存消耗: 20812K, 提交时间: 2023-08-13 13:40:18
import java.util.Scanner; public class Main { public static void main(String agrs[]) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); for(int i=1;i<=n;i++) { int m = sc.nextInt(); int a []= new int [m]; for(int j=0;j<m;j++) { a[j]=sc.nextInt(); } int num=0; while(a[0]%2!=1) { boolean is=false; for(int k=1;k<m;k++) { if(a[k]<a[0]&&a[k]%2==1) { num=1; is = true; break; } } if(is)break; else { num=-1; break; } } System.out.println(num); } } }
Python3 解法, 执行用时: 97ms, 内存消耗: 4628K, 提交时间: 2023-08-13 13:39:36
n=int(input()) for _ in range(n): input() a=list(map(int,input().split())) if a[0]%2: print(0) continue b=a[1:] f=0 for i in b: if i%2 and i<a[0]: f=1 print(1 if f else -1)