#include "bits/stdc++.h" using namespace std; #define DEBUG(x) cout<<#x<<": "< #define vl vector #define vii vector< vector > #define vll vector< vector > #define vs vector #define pii pair #define pis pair #define psi pair #define pll pair #define fi first #define se second #define rep(i,n) for(int i=0;i<(int)(n);i++) #define rep1(i,n) for(int i=1;i<=(int)(n);i++) #define all(c) c.begin(),c.end() const int inf = 1000000001; const ll INF = 2e18; #define MOD 1000000007 #define mod 1000000009 #define pi 3.14159265358979323846 #define Sp(p) cout<> n >> k >> p; vll a(n, vl(n, INF)); vi x(n), y(n); queue que; rep(i, k) { cin >> x[i] >> y[i]; x[i]--; y[i]--; a[x[i]][y[i]] = 0; que.push(pii(x[i], y[i])); } while (!que.empty()) { pii now = que.front(); que.pop(); int i0 = now.first, j0 = now.second; int d = a[i0][j0]; rep(i, 6) { int in = i0 + dx[i], jn = j0 + dy[i]; if (in < 0 || in >= n || jn < 0 || jn >= n) { continue; } if (jn > in) { continue; } if (a[in][jn] > d + 1) { a[in][jn] = d + 1; que.push(pii(in, jn)); } } } vll rnaname(n, vl(n + 1)), lnaname(n, vl(n + 1)); rep(i, n) { rnaname[i][0] = 0; for (int j = i; j < n; j++) { rnaname[i][j + 1] = rnaname[i][j] + a[j][j - i]; } } rep(i, n) { lnaname[i][0] = 0; for (int j = i; j < n; j++) { lnaname[i][j + 1] = lnaname[i][j] + a[j][i]; } } /* rep(i, n) { rep(j, n) { cout << a[i][j] << " "; } cout << endl; } cout << endl; rep(i, n) { rep(j, n + 1) { cout << rnaname[i][j] << " "; } cout << endl; } cout << endl; rep(i, n) { rep(j, n + 1) { cout << lnaname[i][j] << " "; } cout << endl; } cout << endl; //*/ ll ans = 0; rep(i, n) { //DEBUG(i); ll l = 0, r = 1; ll score = a[i][0]; bool pre = false; bool first = true; while (true) { //printf("l: %d, r: %d, score: %d \n", l, r, score); if (score >= p) { if (first) { ans += (l + 1) * (i - r + 2); first = false; } else { ans += (i - r + 2); } /* cout << '-' << endl; DEBUG(i + 1); DEBUG(i - r + l); //*/ score -= (lnaname[l][i + 1] - lnaname[l][i - (r - 1 - l)]); l++; pre = true; } else { if (r > i) { break; } /* cout << '+' << endl; DEBUG(i + 1); DEBUG(i - (r - l)); //*/ score += (rnaname[i - r][i + 1] - rnaname[i - r][i - (r - l)]); r++; pre = false; } //DEBUG(ans); } //printf("l: %d, r: %d, score: %d\n", l, r, score); } cout << ans << endl; }