ZOJ 1178 Booklet Printing
榪欓亾棰樻槸涓閬撶畝鍗曠殑妯℃嫙棰橈紝浣嗘槸鍋氳搗鏉ユ湁鐐圭箒鐞愶紝涓嶄粎澶勭悊榪囩▼綣佺悙錛岃緭鍑轟篃綣佺悙銆傝繖涓棶棰樺ぇ鎰忔槸鎵撳嵃鏂囩珷錛屽弻闈㈡墦鍗幫紝涓闈㈡墦鍗頒袱欏碉紝緇欏畾欏墊暟錛岀劧鍚庤緭鍑烘瘡欏電焊鎵撳嵃鐨勯〉鐮併傝姹傝繖浜涚焊鏀懼湪涓璧鳳紝浠庝腑闂存姌鍙犲悗錛岄〉鐮佽繛緇掑銆傛壘涓ゅ紶綰鎬竴璇曞氨鐭ラ亾鎬庝箞鍥炰簨浜?jiǎn)銆傜敤front[0]銆?/span>front[1]鍒嗗埆琛ㄧず姝i潰鎵撳嵃鐨勯〉鐮佹暟錛?/span>back[0]銆?/span>back[1]琛ㄧず鑳岄潰鎵撳嵃鐨勯〉鐮佹暟銆傚浜?/span>4欏電殑鏂囩珷錛屾鏃犵枒闂?/span>front[1] = 1;back[0]=2;back[1]=3;front[0]=4銆傚湪杈撳嚭鐨勬椂鍊?/span>back涓庡啋鍙蜂箣闂存湁絀烘牸錛岃?/span>front涓庡啋鍙蜂箣闂存棤絀烘牸錛屽紑濮嬭繕?shù)互湄?fù)鏄鐩墦閿欎簡(jiǎn)錛岃嚜浣滆仾鏄庣殑璇ヤ簡(jiǎn)涓嬶紝鎻愪氦灝?/span>WA浜?jiǎn)锛屽悗鏉ユ敼杩囨潵涓鐪嬶紝鍘熸潵鏄鎵撲釜絀烘牸鏄洜涓?/span>front姣?/span>back澶氫釜瀛楁瘝錛屼負(fù)浜?jiǎn)瀵归綈濂界湅銆傞渶瑕佹敞鎰忕殑鏄欏墊垨鑰呮渶鍚庝竴欏墊湁鍙兘鏈夌┖鐧介〉錛岄渶瑕侀澶栧鐞嗐?/span>
鍙傝冧唬鐮佸涓嬶細(xì)
#include <stdlib.h>
#include <string.h>
struct node
{
int front[2];
int back[2];
}a[25];
int main(void)
{
int n;
int i;
int pages;
int t;
while (scanf("%d", &n) != EOF && n != 0)
{
pages = n/4;
if (n%4 != 0)
++pages;
t = 0;
memset(a, 0, sizeof(a));
for (i = 0; i < pages-1; ++i)
{
++t;
a[i].front[1] = t;
++t;
a[i].back[0] = t;
}
if (n > t)
{
++t;
a[i].front[1] = t;
}
if (n > t)
{
++t;
a[i].back[0] = t;
}
i = pages - 1;
while (n > t+1)
{
++t;
a[i].back[1] = t;
++t;
a[i].front[0] = t;
--i;
}
if (n > t)
{
++t;
a[i].back[1] = t;
}
if (n > t)
{
++t;
a[i].front[0] = t;
}
printf("Printing order for %d pages:\n", n);
for (i = 0; i < pages-1; ++i)
{
printf("Sheet %d, front: ", i+1);
if (a[i].front[0] == 0)
{
printf("%s, ", "Blank");
}
else
{
printf("%d, ", a[i].front[0]);
}
if (a[i].front[1] == 0)
{
printf("%s\n", "Blank");
}
else
{
printf("%d\n", a[i].front[1]);
}
printf("Sheet %d, back : ", i+1);
if (a[i].back[0] == 0)
{
printf("%s, ", "Blank");
}
else
{
printf("%d, ", a[i].back[0]);
}
if (a[i].back[1] == 0)
{
printf("%s\n", "Blank");
}
else
{
printf("%d\n", a[i].back[1]);
}
}
if (a[i].front[0] != 0 || a[i].front[1] != 0)
{
printf("Sheet %d, front: ", i+1);
if (a[i].front[0] == 0)
{
printf("%s, ", "Blank");
}
else
{
printf("%d, ", a[i].front[0]);
}
if (a[i].front[1] == 0)
{
printf("%s\n", "Blank");
}
else
{
printf("%d\n", a[i].front[1]);
}
}
if (a[i].back[0] != 0 || a[i].back[1] != 0)
{
printf("Sheet %d, back : ", i+1);
if (a[i].back[0] == 0)
{
printf("%s, ", "Blank");
}
else
{
printf("%d, ", a[i].back[0]);
}
if (a[i].back[1] == 0)
{
printf("%s\n", "Blank");
}
else
{
printf("%d\n", a[i].back[1]);
}
}
}
return 0;
}