1 solutions
-
0
import java.util.*;
public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); long[] a = new long[n]; int pre = 0; //前缀为负数的个数 int ouShu = 1; //前缀中负数个数为偶数的初始化为1个 int jiShu = 0; //前缀中负数个数为奇数的初始化为0个 long count = 0L; for(int i=0; i<n; i++){ a[i] = in.nextLong(); if(a[i]<0){ pre = pre +1; } if(pre % 2 == 0){ //前缀有偶数个负数 ,那前缀一定得是奇数个负数,才能是负数 count += jiShu; }else{ //前缀有奇数个负数,那前缀一定得是偶数个负数,才能是负数 count += ouShu; } if(pre%2 == 0){ ouShu++; }else { jiShu++; } } long count1 = (long) (n + 1) *n/2-count; System.out.println(count + " " + count1); } }
Information
- ID
- 9
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 6
- Tags
- # Submissions
- 328
- Accepted
- 37
- Uploaded By