long t = sc.nextLong();
while (t-- > 0) { long n = sc.nextLong(); int[][] grid = new int[2][(int) (n + 3)]; long ans = 0; for(int i = 0 ; i < n ; i++){ int v1 = sc.nextInt(); int v2 = sc.nextInt(); grid[v2][v1]++; } for(int i = 0 ; i <= n ; i++){ if(grid[0][i] > 0 && grid[1][i] > 0){ ans += (n-2); } } for(int i = 0 ; i <= n ; i++){ if(grid[0][i] > 0 && i > 0 && i < n-1){ if(grid[1][i-1] > 0 && grid[1][i+1] > 0){ ans += 1; } } } for(int i = 0 ; i <= n ; i++){ if(grid[1][i] != 0 && i > 0 && i < n-1){ if(grid[0][i-1] != 0 && grid[0][i+1] != 0){ ans += 1; } } } System.out.println(ans); } }
This is my logic I cant figure out which case am i missing
you should write i<n in the second and the therd for
not i<n-1
Thank you