include[HTML_REMOVED]
include[HTML_REMOVED]
include[HTML_REMOVED]
include[HTML_REMOVED]
include[HTML_REMOVED]
include[HTML_REMOVED]
include[HTML_REMOVED]
include[HTML_REMOVED]
include[HTML_REMOVED]
include[HTML_REMOVED]
include[HTML_REMOVED]
using namespace std;
const int maxn = 1e4 + 5;
int a[maxn];
int s[maxn];
int n,p,h,m,l,r;
map[HTML_REMOVED]maps;
int main(void) {
while(scanf(“%d%d%d%d”,&n,&p,&h,&m) != EOF) {
for(int i = 1; i <= n; i ) {
a[i] = h;
s[i] = 0;
}
for(int j = 1; j <= m; j ) {
scanf(“%d%d”,&l,&r);
if(maps[l] == r || maps[r] == l || abs(l - r) == 1) continue;
else {
maps[l] = r;
maps[r] = l;
}
if(l > r) swap(l,r);
s[l + 1 ] –; // 左端和右端不用进行操作
s[r] ;
}
for(int i = 1; i <= n; i ) {
s[i] = s[i - 1] + s[i]; // s[i]代表差值 (本身的差值加上跟上一个值的差值)
printf(“%d\n”,a[i] + s[i]);
}
maps.clear();
}
return 0;
}