Advertisement
GokulDeep

Voting

Dec 8th, 2024
31
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.72 KB | None | 0 0
  1. import java.util.*;
  2. import java.lang.*;
  3. import java.io.*;
  4.  
  5. class Codechef
  6. {
  7.      public static void main(String[] args) throws IOException {
  8.         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  9.  
  10.         long T = Integer.parseInt(br.readLine().trim());
  11.  
  12.         for (long t = 0; t < T; t++) {
  13.             long n = Integer.parseInt(br.readLine().trim());
  14.             long influence[] = new long[(int) n];
  15.             String[] firstLine = br.readLine().split(" ");
  16.             for (int i = 0; i < firstLine.length; i++) {
  17.                 influence[i] = Integer.parseInt(firstLine[i]);
  18.             }
  19.  
  20.             findVote(influence, n);
  21.         }
  22.     }
  23.  
  24.     // [1,2,3,6,4]
  25.     private static long[] findVote(long[] influence, long n) {
  26.  
  27.         long[] voters = new long[(int) n];
  28.         for (long i = 0; i < influence.length; i++) {
  29.             long l = i - 1, r = i + 1, s = 0;
  30.             while (s <= influence[(int) i] && r <= n - 1) {
  31.                 s += influence[(int) r++];
  32.             }
  33.             if (i < n - 1) {
  34.                 voters[(int) i]--;
  35.                 voters[(int) (r - 1)]++;
  36.             }
  37.  
  38.             s = 0;
  39.  
  40.             while (s <= influence[(int) i] && l >= 0) {
  41.                 s += influence[(int) l--];
  42.             }
  43.  
  44.             if (i > 0) {
  45.                 voters[(int) (i - 1)]++;
  46.             }
  47.             if (l >= 0) {
  48.                 voters[(int) l]--;
  49.             }
  50.         }
  51.         for (long i = voters.length - 2; i >= 0; i--) {
  52.             voters[(int) i] += voters[(int) (i + 1)];
  53.         }
  54.  
  55.         for (long i : voters) {
  56.             System.out.print(i + " ");
  57.         }
  58.         System.out.println();
  59.         return voters;
  60.     }
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement