1 typedef long long ll; 2 typedef pair<int,int> P; 3 #define _for(i,a,b) for(register int i = (a);i < b;i ++) 4 #define _rep(i,a,b) for(register int i = (a);i > b;i --) 5 #define INF 0x3f3f3f3f 6 #define MOD 100000000 7 #define maxn 10003 8 9 10 class Solution 11 { 12 map<int,int> m; 13 public: 14 int longestSubsequence(vector<int>& arr, int difference) 15 { 16 int ans = 1; 17 _for(i,0,arr.size()) 18 { 19 auto iter = m.find(arr[i]-difference); 20 if(iter==m.end()) 21 m[arr[i]] = 1; 22 else 23 { 24 int k = iter->second; 25 m[arr[i]] = k+1; 26 ans = max(ans,k+1); 27 } 28 } 29 return ans; 30 } 31 };