54312023-05-25 18:44:15111Barátokcpp14Elfogadva 100/100344ms58176 KiB
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace std;
using namespace __gnu_pbds;

template<typename T> using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;

int main() {
	int N;
	cin >> N;
	vector<int> v(N + 1);
	vector<vector<int>> u(N + 1);
	vector<vector<int>> w(N + 1);
	for (int i = 1; i <= N; i++) {
		cin >> v[i];
		u[max(1, i - v[i])].push_back(i);
		w[min(N, i)].push_back(i);
	}
	ordered_set<int> s;
	long long x = 0;
	for (int i = 1; i <= N; i++) {
		for (int j : u[i]) {
			s.insert(j);
		}
		x += s.order_of_key(min(N + 1, i + v[i] + 1)) - s.order_of_key(max(1, i - v[i])) - 1;
		for (int j : w[i]) {
			s.erase(j);
		}
	}
	cout << x << endl;
	return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1872 KiB
2Elfogadva189ms31456 KiB
subtask211/11
3Elfogadva189ms31456 KiB
4Elfogadva3ms2336 KiB
5Elfogadva7ms3472 KiB
6Elfogadva7ms3724 KiB
7Elfogadva7ms3996 KiB
8Elfogadva7ms4004 KiB
9Elfogadva7ms4340 KiB
10Elfogadva4ms4072 KiB
11Elfogadva7ms4216 KiB
subtask312/12
12Elfogadva7ms4216 KiB
13Elfogadva164ms43812 KiB
14Elfogadva151ms44016 KiB
15Elfogadva162ms43960 KiB
16Elfogadva97ms47396 KiB
17Elfogadva158ms44328 KiB
18Elfogadva87ms48844 KiB
19Elfogadva142ms46088 KiB
subtask431/31
20Elfogadva142ms46088 KiB
21Elfogadva137ms44408 KiB
22Elfogadva149ms44456 KiB
23Elfogadva90ms48472 KiB
24Elfogadva136ms45328 KiB
25Elfogadva344ms51564 KiB
26Elfogadva333ms48256 KiB
27Elfogadva317ms54488 KiB
28Elfogadva275ms45888 KiB
29Elfogadva293ms56692 KiB
subtask546/46
30Elfogadva293ms56692 KiB
31Elfogadva174ms45116 KiB
32Elfogadva211ms45700 KiB
33Elfogadva263ms46296 KiB
34Elfogadva123ms48372 KiB
35Elfogadva256ms47880 KiB
36Elfogadva104ms49836 KiB
37Elfogadva277ms57980 KiB
38Elfogadva289ms58176 KiB
39Elfogadva337ms52832 KiB
40Elfogadva105ms50256 KiB
41Elfogadva324ms52484 KiB
42Elfogadva282ms46468 KiB
43Elfogadva293ms47652 KiB
44Elfogadva310ms55444 KiB
45Elfogadva310ms49280 KiB