#22804: 解法思路


es611543 (afa)


我寫了一個 判定函式 

bool can( const map<int,int> &pic , int add )

{

  若在pic後 加上 add 仍為雙遞增序列,則傳回 true,否則傳回 false

}

 

========主程式中=============

若A t 則由目前可用的編號num中,由小至大 呼叫 can ,找到最小的 可用編號,加入pic,並由num刪除

若D t 則由pic中將其刪除,但刪之前,查出其相片編號,放回num

 

我是用map<int,int>維護 pic 的{時間、相片編號} 、  並且用 set<int>維護目前可用的相片編號

map及set都有 erase, 還不錯用

 

======= 注意最後新增的2個編號,應該不同,除非從頭至尾都是同一個編號