#include #include using namespace std; class queen{ public: int x; int y; queen(){ x = 0; y = 0; } }; int main(int argc, char** argv){ while(1){ int x, y, pocet_q; int soucet; cin >> x >> y >> pocet_q; if(x==0 && y==0 && pocet_q == 0){ return 0; } soucet = x*y; queen kralovny[pocet_q]; for (int i = 0; i> poz_x >> poz_y; kralovny[i].x = poz_x; kralovny[i].y = poz_y; odecist += x + y - 1; if (kralovny[i].x > kralovny[i].y){ odecist += kralovny[i].y - 1; } else { odecist += kralovny[i].x - 1; } if (kralovny[i].x > y - kralovny[i].y){ odecist += y - kralovny[i].y; } else { odecist += kralovny[i].x - 1; } if (x - kralovny[i].x >= kralovny[i].y){ odecist += kralovny[i].y - 1; } else { odecist += x - kralovny[i].x; } if (x - kralovny[i].x > y - kralovny[i].y){ odecist += y - kralovny[i].y; } else { odecist += x - kralovny[i].x; } for (int j = i; j>0; j--){ int pom; if(kralovny[j].x == kralovny[i].x){ odecist -= y; pom = abs(kralovny[i].y - kralovny[j].y); if (kralovny[i].x + pom <= x){ odecist -= 2; } if (kralovny[i].x - pom >= 1){ odecist -= 2; } } else if(kralovny[j].y == kralovny[i].y){ odecist -= x; pom = abs(kralovny[i].x - kralovny[j].x); if (kralovny[i].y + pom <= y){ odecist -= 2; } if (kralovny[i].y - pom >= 1){ odecist -= 2; } } else if(abs(kralovny[i].x - kralovny[j].x) == abs(kralovny[i].y - kralovny[j].y)){ if (kralovny[i].x > kralovny[i].y){ odecist += kralovny[i].y - 1; } else { odecist += kralovny[i].x - 1; } if (kralovny[i].x > y - kralovny[i].y){ odecist += y - kralovny[i].y; } else { odecist += kralovny[i].x - 1; } if (x - kralovny[i].x >= kralovny[i].y){ odecist += kralovny[i].y - 1; } else { odecist += x - kralovny[i].x; } if (x - kralovny[i].x > y - kralovny[i].y){ odecist += y - kralovny[i].y; } else { odecist += x - kralovny[i].x; } pom = abs(kralovny[i].x - kralovny[j].x); if(kralovny[i].x > kralovny[j].x){ if(kralovny[i].x + pom <= x){ odecist -= 1; } if(kralovny[j].x - pom >= 1){ odecist -= 1; } } else { if(kralovny[j].x + pom <= x){ odecist -= 1; } if(kralovny[i].x - pom >= 1){ odecist -= 1; } } pom = abs(kralovny[i].y - kralovny[j].y); if(kralovny[i].y > kralovny[j].y){ if(kralovny[i].y + pom <= y){ odecist -= 1; } if(kralovny[j].y - pom >= 1){ odecist -= 1; } } else { if(kralovny[j].y + pom <= y){ odecist -= 1; } if(kralovny[i].y - pom >= 1){ odecist -= 1; } } } else { pom = abs(kralovny[i].x - kralovny[j].x); if(kralovny[i].x > kralovny[j].x){ if(kralovny[i].x + pom <= x){ odecist -= 1; } if(kralovny[j].x - pom >= 1){ odecist -= 1; } } else { if(kralovny[j].x + pom <= x){ odecist -= 1; } if(kralovny[i].x - pom >= 1){ odecist -= 1; } } pom = abs(kralovny[i].y - kralovny[j].y); if(kralovny[i].y > kralovny[j].y){ if(kralovny[i].y + pom <= y){ odecist -= 1; } if(kralovny[j].y - pom >= 1){ odecist -= 1; } } else { if(kralovny[j].y + pom <= y){ odecist -= 1; } if(kralovny[i].y - pom >= 1){ odecist -= 1; } } } } soucet-=odecist; } cout << soucet << endl; } return 0; }