1 solutions

  • 0
    @ 2024-5-12 16:48:10

    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