我寫了一個 判定函式
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個編號,應該不同,除非從頭至尾都是同一個編號