classSolution{public:intsumDistance(vector<int>& nums, string s,int d){longlong n = nums.size();// 计算最终位置,可以直接忽略碰撞for(int i=0;i<n;i++){
nums[i]+= s[i]=='L'?(-d): d;}sort(nums.begin(), nums.end());long res =0, mod =1e9+7;long sum = nums.back()%mod;// 依次计算每个位置的机器人与其右方机器人的距离之和// 距离公式: sum - nums[i]*(n-i-1)for(int i=n-2;i>=0;i--){
res =(res +(sum+mod-(n-i-1)*nums[i]%mod)%mod)%mod;
sum =(sum + nums[i])%mod;}return res;}};