ABC166 E his Message Will Self-Destruct in 5s
ABC166 E his Message Will Self-Destruct in 5s
問題概要
整数[$ N]
ある整数列[$ A]が与えられる
となるを求める
考察
- 式変形すると見えてくる
- 見えてしまえばあとは実装するだけの状態に落とし込める
ソースコード
#include<algorithm> #include<bitset> #include<cassert> #include<cfloat> #include<climits> #include<cmath> #include<deque> #include<functional> #include<iomanip> #include<iostream> #include<map> #include<queue> #include<array> #include<set> #include<stack> #include<string> #include<unordered_map> #include<unordered_set> #include<utility> #include<vector> using namespace std; const int INF = 1e9 + 7; constexpr ll MOD = 1e9 + 7; /***********************************************************************************/ int main() { cin.tie(0); ios::sync_with_stdio(false); cout << fixed << setprecision(10); ll N; cin >> N; vector<ll> A(N); map<ll,ll> L,R; for(int i = 0;i < N;i++){ cin >> A[i]; L[i+A[i]]++; R[i-A[i]]++; } ll ans = 0; for(auto itr:L){ ans += itr.second*R[itr.first]; } cout << ans << endl; return 0; }