2019年07月27日23時16分39秒に更新されたバージョンを表示しています.
最新のページはこちらをご覧ください.
AtCoder Beginner Contest 135
問題文
省略
省略
C++に変換後のコードはこちら
int K, X, Y;
int cx, cy;
int ress, resx[200000], resy[200000];
{
int i, j, r, res;
int dx, dy, fx, fy;
rd(K,X,Y);
if(K%2 == 0 && (X+Y)%%2 == 1){
wt(-1);
return 0;
}
while(X != cx || Y != cy){
dx = abs(cx - X);
dy = abs(cy - Y);
fx = if[cx < X, 1, -1];
fy = if[cy < Y, 1, -1];
if(dx+dy == K){
cx = X;
cy = Y;
} else if( dx+dy >= 2K || (K%2==1 && (dx+dy)%2==1) ){
i = min(K, dx);
cx += fx * i;
cy += fy * (K - i);
} else {
r = (2K - dx - dy) / 2;
if(dx <= K - r){
i = dx + r;
j = K - i;
} else {
j = dy + r;
i = K - j;
}
cx += fx * i;
cy += fy * j;
}
resx[ress] = cx;
resy[ress] = cy;
ress++;
}
wt(ress);
rep(i,ress) wt(resx[i], resy[i]);
}
Current time: 2024年03月28日22時48分44秒
Last modified: 2019年07月27日23時16分39秒 (by laycrs)
Tags: Competitive_Programming_Incomplete AtCoder AtCoder_Beginner_Contest ABC135 ABC_E
トップページに戻る
Logged in as: unknown user (not login)