题目链接如下:
Online Judge
这道题折磨了我很久。最后是用了如何比较两个txt文件内容的细微差别-百度经验
这里介绍的fc 1.txt 2.txt 来比较两个答案的差别,最后查出了bug。用的测试样例是UDebug上的一组大数据:12412 | uDebug
为了比较答案,另外还学到了下面这个很有用的用法。
#define debug
#ifdef debug
freopen("0.txt","r",stdin);
freopen("1.txt","w",stdout);
#endif
#ifdef debug
fclose(stdin);
fclose(stdout);
#endif
我起先的代码问题出在:一个student被删除后,可以重新加回;但我是用mp[sid](map)来判断这个student还存不存在,被加回后,起先被删除但仍留在vector中的也变成存在了,造成了vector中有了两个重复的student。所以只能在student的结构体中加入了existed这个判断是否存在的变量。(确切来说,mp[sid]可以判断学生是否存在,若存在,则在vec[mp[sid] - 1]这个位置上;existed判断vector上这个student是否存在。)
我的代码如下:
#include
#include
#include