C语言 请问我错在哪里

img

img


#include <stdio.h>
int main()
{
int n, k, l[1000], r[1000], i=0, a=0,ans=0;
scanf("%d %d", &n, &k);
for (; i < n; i++) {
scanf("%d %d", &l[i], &r[i]);
}
for (i=0; i < n; i++) {
if (k+a < l[i]) {

        a -= l[i] - k;
        ans = a + l[i] - k;

    }
    if (k+a > r[i]) {
        a += k - r[i];
        ans = a + k - r[i];
    }

}
if (a>=0) printf("%d\n", ans);
else printf("-1\n");
return 0;

}

a -= l[i] - k;
这行代码的a是一个负数;而且调配的话多的和少的应该用两个变量统计,这样如果从多的同学那里拿给少的同学,就只需要一次操作

有测试样例吗?
测试样例发来看看