Language: C++

#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <set>
#include <cmath>
#include <queue>
#include <map>
#include <stack>
#include <bitset>
#include <numeric> //lcm
#include <iomanip> //double精度 setprecision

using namespace std;

#define rep(i,n) for(int i = 0; i < (n); ++i)
#define rrep(i,n) for(int i = n-1; i >= 0; --i)
#define rep1(i,n) for(int i = 1; i <= (n); ++i)
#define rrep1(i,n) for(int i = (n); i >= 1; --i)
#define REP(i,n,m) for(int i = (n); i < (m); ++i)
#define all(vec) (vec).begin(),(vec).end()

#define debug(vec) for(auto v : vec) cerr << v << " "; cerr << endl;
#define debug2D(vec2D) for(auto vec : vec2D) { for (auto v : vec) cerr << v << " "; cerr << endl; } 
#define debugP(vec) for(auto v : vec) cerr << "(" << v.first << "," << v.second << ") "; cerr << endl;
#define debug2DP(vec2D) for(auto vec : vec2D) { for (auto v : vec) cerr << "(" << v.first << "," << v.second << ") "; cerr << endl; } 

typedef long long ll;

constexpr ll INF = 1000000000; //10^10
//const ll MOD = 998244353;
constexpr ll MOD = 1000000007;

template<class T> inline bool chmax(T& a, T b) { if (a <= b) { a = b; return true; } else return false; }
template<class T> inline bool chmin(T& a, T b) { if (a > b) { a = b; return true; } else return false; }

struct UnionFind {
	UnionFind(int n) {
		par = new int[n + 1];
		size = new int[n + 1];
		height = new int[n + 1];
		for (int i = 0; i <= n; ++i) {
			par[i] = i;
			size[i] = 1;
			height[i] = 1;
		}
	}

	void unite(int a, int b) {
		a = root(a);
		b = root(b);
		if (a == b) return;
		if (height[a] < height[b]) {
			par[a] = b;
			size[b] += size[a];
		}
		else {
			par[b] = a;
			size[a] += size[b];
			if (height[a] == height[b]) {
				height[a]++;
			}
		}

	}

	int root(int a) {
		return par[a] == a ? a : par[a] = root(par[a]);
	}

	int getSize(int a) {
		return size[root(a)];
	}

	bool isSame(int a, int b) {
		return root(a) == root(b);
	}

	int* size;
	int* height;
	int* par;
};

void dfs(UnionFind& uf, vector<vector<int>>& tree, int a, int b) {

}

int main() {
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	cout.tie(nullptr);

	int n,d,a; cin >> n >> d >> a;
	vector<pair<ll,ll>> xh(n);
	rep(i,n) cin >> xh[i].first >> xh[i].second;
	sort(all(xh));
	vector<int> damage(n,0);
	ll r = 0, ans = 0;
	rep(l, n) {
		if (l-1 >= 0) damage[l] += damage[l - 1];

		int atackN = xh[l].second + damage[l] <= 0 ? 0 : (xh[l].second + damage[l] + a - 1) / a;
	 　　ans += atackN;
	  　damage[l] -= atackN*a;
		while (r < l) r++;
		while (r+1 < n && xh[r+1].first - xh[l].first < 2*d+1 ) {
			r++;
		}
		if(r+1 < n)damage[r+1] += ((xh[l].second + a - 1) / a) * a;
		
	}

	cout << ans << endl;
}

Compiler output:
a.cc:103:10: error: extended character 　 is not valid in an identifier
  103 |          　　ans += atackN;
      |          ^
a.cc:103:10: error: extended character 　 is not valid in an identifier
a.cc:104:11: error: extended character 　 is not valid in an identifier
  104 |           　damage[l] -= atackN*a;
      |           ^
a.cc: In function 'int main()':
a.cc:103:10: error: '\U00003000\U00003000ans' was not declared in this scope
  103 |          　　ans += atackN;
      |          ^~~~~~~
a.cc:104:11: error: '\U00003000damage' was not declared in this scope; did you mean 'damage'?
  104 |           　damage[l] -= atackN*a;
      |           ^~~~~~~~
      |           damage