File tree Expand file tree Collapse file tree 1 file changed +28
-8
lines changed
Codeforces/livecontest/Round728Div2 Expand file tree Collapse file tree 1 file changed +28
-8
lines changed Original file line number Diff line number Diff line change @@ -16,29 +16,49 @@ public static void main(String[] args) {
1616 int t = sc .nextInt ();
1717 for (int tt = 0 ; tt < t ; tt ++) {
1818 int n = sc .nextInt ();
19- int [] arr = sc .readArray (n );
20- solveTask (arr );
19+ long [] arr = new long [n + 1 ];
20+
21+ // read array
22+ for (int i = 1 ; i < arr .length ; i ++) {
23+ arr [i ] = sc .nextInt ();
24+ }
25+ solveTask2 (arr , n );
2126 }
2227
2328 out .close ();
2429 }
2530
26- private static void solveTask ( int [] arr ) {
31+ private static void solveTask2 ( long [] arr , int n ) {
2732 int count = 0 ;
2833
29- for (int i = 0 ; i < arr . length ; i ++) {
34+ for (int i = 1 ; i <= n ; i ++) {
3035
31- for (int j = i + 1 ; j < arr . length ; j ++ ) {
36+ for (long j = arr [ i ] - i ; j <= n ; j += arr [ i ] ) {
3237
33- int ci = i + 1 , cj = j + 1 ;
38+ if ( j >= 0 ) {
3439
35- if ((arr [i ] * arr [j ]) == (ci + cj ))
36- count ++;
40+ if (arr [i ] * arr [(int ) j ] == i + j && i < j )
41+ count ++;
42+ }
3743 }
3844 }
3945 System .out .println (count );
4046 }
4147
48+ // this will get TLE
49+ /*
50+ * private static void solveTask(int[] arr) { int count = 0;
51+ *
52+ * for (int i = 0; i < arr.length; i++) {
53+ *
54+ * for (int j = i + 1; j < arr.length; j++) {
55+ *
56+ * int ci = i + 1, cj = j + 1;
57+ *
58+ * if ((arr[i] * arr[j]) == (ci + cj)) count++; } }
59+ * System.out.println(count); }
60+ */
61+
4262 static class FastReader {
4363 BufferedReader br ;
4464 StringTokenizer st ;
You canβt perform that action at this time.
0 commit comments