ä¸æã«å¼å¤å½¢ãããï¼
åé¡æ¦è¦
æ£ã®æ´æ°ãããªããµã¤ãº ã®æ°å
ãä¸ããããã次ã®æ¡ä»¶ãæºããçµ
ã®åæ°ãæ±ããã
å¶ç´
èãããã¨
æ¡ä»¶ãä¸æè°ã ãæ®é㯠ããã
ã®æ¹ã大ãããã¨ãå¤ãã®ã«ã
ã¨ãªãæ¡ä»¶ãåãã¨ã¯ã
ãã¦ããã®æã®æ°å¼ãè¦ãã¨ãã«èããã¹ããã¨ã¯ã左辺㯠ã ããå³è¾ºã¯
ã ãã¨ããããã«å¼å¤å½¢ãããã¨ãããã¨ã ã次ã®ããã«ãªãã
â
ãã®å¼ã示ããã¨ã¯ã次ã®ãããªãã¨ã ã
å ã«å¯¾ãã¦ã
ã¨ããã¨ãã
ãæºãã
(\lt j) ã®åæ°ãåç®ãã¦ããã°ãã
ãã®å¦ç㯠map
ãªã©ãç¨ãã¦ã§ãããè¨ç®é㯠ã¨ãªãã
ã³ã¼ã
#include <bits/stdc++.h> using namespace std; // Ai + Aj = j - i // Ai + i = j - Aj int main() { int N; cin >> N; vector<long long> A(N); for (int i = 0; i < N; i++) cin >> A[i]; map<long long, long long> Aplus; for (int i = 0; i < N; i++) Aplus[A[i] + i]++; long long res = 0; for (int j = 0; j < N; j++) { res += Aplus[j - A[j]]; } cout << res << endl; }