输出和示例不一样,请问哪里不对?

题目描述
模拟一个点在二维坐标系上的运动
输入
第一行输入初始坐标两个整数x,y
第二行操作个数一个整数n
接下来n行每行输入两个整数a b
a表示运动方向,b表示运动的长度
运动方向的表示:
0:y轴正方向
1:x轴正方向
2:y轴负方向
3:x轴负方向
输出
一行两个整数x,y用空格隔开表示点的最终坐标
样例输入 Copy
1 1
4
0 2
1 2
2 1
3 1
样例输出 Copy
2 2

#include<cstdio>
#include<cmath>
using namespace std;

int main()
{
    int x,y,n,a,b;
    scanf("%d %d %d",&x,&y,&n);
    for(int i=1;i<=n;i++){
        scanf("%d %d",&a,&b);
        if(a=0){
            y=y+b;
        }
        if(a=1){
            x=x+b;
        }
        if(a=2){
            y=y-b;
        }
        if(a=3){
            x=x-b;
        } 
    }
    printf("%d %d",x,y);
    
    return 0;
}