#include <stdio.h>
#include <vector>
int value[1234][1234],value2[1234][1234];
void rotate(int x0, int y0, int w, int h)
{
// (x0,y0) ~ (x0,y0+h)
// (x0,y0+h) ~ (x0+w,y0+h)
// (x0+w,y0+h) ~ (x0+w,y0)
// (x0+w,y0) ~ (x0,y0)
std::vector< std::pair<int,int> > temp;
for(int i=0;i<h;i++) temp.push_back(std::make_pair(x0,y0+i));
for(int i=0;i<w;i++) temp.push_back(std::make_pair(x0+i,y0+h));
for(int i=0;i<h;i++) temp.push_back(std::make_pair(x0+w,y0+h-i));
for(int i=0;i<w;i++) temp.push_back(std::make_pair(x0+w-i,y0));
//rotate
for(int i=0;i<temp.size();i++) value2[temp[(i+1)%temp.size()].first][temp[(i+1)%temp.size()].second] = value[temp[i].first][temp[i].second];
for(int i=0;i<temp.size();i++) value[temp[i].first][temp[i].second] = value2[temp[i].first][temp[i].second];
}
int main()
{
rotate(1,2,3,4);
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDx2ZWN0b3I+CgppbnQgdmFsdWVbMTIzNF1bMTIzNF0sdmFsdWUyWzEyMzRdWzEyMzRdOwp2b2lkIHJvdGF0ZShpbnQgeDAsIGludCB5MCwgaW50IHcsIGludCBoKQp7CgkvLyAoeDAseTApIH4gKHgwLHkwK2gpCgkvLyAoeDAseTAraCkgfiAoeDArdyx5MCtoKQoJLy8gKHgwK3cseTAraCkgfiAoeDArdyx5MCkKCS8vICh4MCt3LHkwKSB+ICh4MCx5MCkKCQoJc3RkOjp2ZWN0b3I8IHN0ZDo6cGFpcjxpbnQsaW50PiA+IHRlbXA7Cglmb3IoaW50IGk9MDtpPGg7aSsrKSB0ZW1wLnB1c2hfYmFjayhzdGQ6Om1ha2VfcGFpcih4MCx5MCtpKSk7Cglmb3IoaW50IGk9MDtpPHc7aSsrKSB0ZW1wLnB1c2hfYmFjayhzdGQ6Om1ha2VfcGFpcih4MCtpLHkwK2gpKTsKCWZvcihpbnQgaT0wO2k8aDtpKyspIHRlbXAucHVzaF9iYWNrKHN0ZDo6bWFrZV9wYWlyKHgwK3cseTAraC1pKSk7Cglmb3IoaW50IGk9MDtpPHc7aSsrKSB0ZW1wLnB1c2hfYmFjayhzdGQ6Om1ha2VfcGFpcih4MCt3LWkseTApKTsKCQoJLy9yb3RhdGUKCWZvcihpbnQgaT0wO2k8dGVtcC5zaXplKCk7aSsrKSB2YWx1ZTJbdGVtcFsoaSsxKSV0ZW1wLnNpemUoKV0uZmlyc3RdW3RlbXBbKGkrMSkldGVtcC5zaXplKCldLnNlY29uZF0gPSB2YWx1ZVt0ZW1wW2ldLmZpcnN0XVt0ZW1wW2ldLnNlY29uZF07Cglmb3IoaW50IGk9MDtpPHRlbXAuc2l6ZSgpO2krKykgdmFsdWVbdGVtcFtpXS5maXJzdF1bdGVtcFtpXS5zZWNvbmRdID0gdmFsdWUyW3RlbXBbaV0uZmlyc3RdW3RlbXBbaV0uc2Vjb25kXTsKfQoKaW50IG1haW4oKQp7Cglyb3RhdGUoMSwyLDMsNCk7Cn0=