d552. Asphalt's Problem
標籤 :
通過比率 : 39人/42人 ( 93% ) [非即時]
評分方式:
Tolerant

最近更新 : 2009-12-11 17:47

內容

嘿嘿,時間回到西元一世紀,柏油控asas來到了偉大的羅馬帝國推銷最新的柏油技術,不到三年,整個羅馬帝國的路面已經鋪滿了柏油。 

這天,史學家Josephus、他的部下和asas被羅馬人追殺逃到了一塊空地,他們討論是自殺還是被俘,最終決定自殺,並以數人頭的方式決定殺掉誰。但是呢,腹黑的Josephus早就計算好要站哪個位置,所以當大家圍成一圈後,Josephus就故意指派一個人,好讓自己可以最後存活。 

「計畫通哩……」Josephus暗笑,此時只剩Josephus和asas。 

「唉唉,太天真了Josephus。」當數數到最後,asas最後咧嘴一笑,數到了Josephus。 

「怎麼可能!等等……啊!!!!」鉈刀沾滿了血跡,asas大笑:「哇哈哈哈哈哈,我將成為新世界的神!」 

(其實筆者已經玩到沒哏了,不要噓我……) 

當現在的我們回顧歷史,其實Josephus並沒有算錯,可是為什麼到了最後還是老馬了呢?考古學家有跨時代的發現,當初羅馬有鋪柏油,因此在大太陽站在柏油路上,有些人因為不耐高溫而偷偷換了位置,因此這才是Josephus失敗的最大原因。 

為了彌補這個錯誤不再讓Josephus的英靈再出來作亂,我們得寫一個程式讓Josephus在某杯戰爭中贏得某杯,我們必須幫他。(逃)

輸入說明

只有一組測資。 

輸入的第一行有三個整數n、k、m(0<=n、k、m<=1000),n代表人數,編號從0、1、……、n-1;k代表每k個一數就殺一個人,譬如從0開始數,則數到第k個人的編號為k-1,則殺掉編號k-1這位。每殺掉一個人,編號就從下一位開始編號0、1、……。m代表每殺幾個人,這之中的人就會互相換位子一次。 

接下來n行有一個整數c(-2000000000<=c<=2000000000),其中第i行代表編號i-1的人執行的動作,當每殺m個人時,會跟當前編號c的人互換,若c的範圍超過當前編號或者是負數時,則不做動作。而當輪到換位子的情形時,則先將所有人換過位子後再重新編號。

輸出說明
只輸出一行整數,代表最後一個人最後的編號。
範例輸入 #1
3 3 1
1
3
0
範例輸出 #1
0
測資資訊:
記憶體限制: 512 MB
公開 測資點#0 (15%): 1.0s , <1M
公開 測資點#1 (15%): 1.0s , <1K
公開 測資點#2 (20%): 1.0s , <1K
公開 測資點#3 (20%): 1.0s , <1K
公開 測資點#4 (30%): 1.0s , <1M
提示 :
殺人套餐
標籤:
出處:
板擦高中手機杯贊助 [管理者: m80126colin (許胖) ]

本題狀況 本題討論 排行

編號 身分 題目 主題 人氣 發表日期
沒有發現任何「解題報告」