算法竞赛入门经典(第2版)例题4-6 师兄帮帮忙 (A Typical Homework UVa 12412)

来源:互联网 发布:文艺美学知乎 编辑:程序博客网 时间:2024/06/05 17:28

这道例题书上要求自己补全代码,因此也当做一道习题来完成。

wa卡了我好几天,最后通过与网上找到的标程对拍才发现是当数据库被清空后统计函数会出现除0的错误。

其实对拍之前读标程的时候已经注意到这点了,但是自己居然以为已经处理好了......

改好程序后顺利通过对拍,再上传还是wa,重新写了测试数据后,发现数据库被完全清空后再添加记录我的程序全报duplicated,改掉bug后第二次上传顺利AC。

后来发现第二个bug官方测试数据是查不出来的,第一次上传后wa其实是因为当时我没注释#define LOCAL ...囧


//#define LOCAL//#define TESTING#include<stdio.h>#include<string.h>#define maxl 10000#define EPS 0.00001int score[maxl][10];//score[][0,1,2,3,4] 分别为(Chinese成绩, Mathematics成绩, English成绩, Programming成绩,总分)int removed[maxl];//删除状态标识int n;//数据库中包含的学生信息数量int cid[maxl];//班级编号char sid[maxl][99], name[maxl][99];//sid:学生编号 name:学生姓名void print_menu()//打印目录函数{    printf("Welcome to Student Performance Management System (SPMS).\n\n");    printf("1 - Add\n");    printf("2 - Remove\n");    printf("3 - Query\n");    printf("4 - Show ranking\n");    printf("5 - Show Statistics\n");    printf("0 - Exit\n\n");    return;}void add(){    char s[maxl];    for(;;)    {           bool dup = 0;        memset(s,0,sizeof(s));        printf("Please enter the SID, CID, name and four scores. Enter 0 to finish.\n");        scanf("%s", s);        #ifdef TESTING        printf("T:input=%s\n", s);        #endif        if(strcmp(s, "0") == 0) break;        //覆盖已删除数据        int indfre = -1;        if(n)        {            bool firstre = false;                         for(int i = 0; i <n; i++)            {                if(removed[i]&&!firstre)                {                    firstre = true;                    indfre = i;                }                if(firstre&&!removed[i])                {                    removed[i] = true;                    for(int j = 0; j <= 10; j++) sid[indfre][j]=sid[i][j];                    cid[indfre] = cid[i];                    for(int j = 0; j <= 10; j++) name[indfre][j]=name[i][j];                    for(int j = 0; j <= 4; j++) score[indfre][j] = score[i][j];                    removed[indfre] = false;                    #ifdef TESTING                    printf("i=%d n=%d indfre=%d\n", i, n, indfre);                    printf("T:record[%d]: %s %d %s %d %d %d %d %d %.2f\n", indfre, sid[indfre],                    cid[indfre], name[indfre], score[indfre][0], score[indfre][1], score[indfre][2], score[indfre][3],                    score[indfre][4], score[indfre][4]/4.0+EPS);                    #endif                    indfre++;                }                if((indfre == 0)&&removed[i]&&(n-i)==1) n = 0;            }        }        if(indfre>0) n = indfre;        //覆盖已删除数据结束        //查重        if(n)        {            for(int i = 0; i <n; i++)             {                if(strcmp(s, sid[i]) == 0)                {                    printf("Duplicated SID.\n");                    #ifdef TESTING                    printf("i=%d n=%d\n", i, n);                    #endif                    dup = true;                    break;                }            }        }        if(dup)        {            int drop;            char drops[maxl];            scanf("%d%s%d%d%d%d",&drop,drops,&drop,&drop,&drop,&drop);            continue;        }        //查重结束        //添加数据        if(removed[n]) removed[n] = false;        for(int i = 0; i <= 10; i++) sid[n][i]=s[i];        #ifdef TESTING        printf("T:s=%s sid=%s\n", s, sid[n]);        #endif        scanf("%d", &cid[n]);        scanf("%s", name[n]);        scanf("%d%d%d%d", &score[n][0], &score[n][1], &score[n][2], &score[n][3]);        score[n][4] = 0;        for(int i = 0; i < 4; i++) score[n][4] += score[n][i];        #ifdef TESTING        printf("T:record[%d]: %s %d %s %d %d %d %d %d %.2f\n", n, sid[n],                cid[n], name[n], score[n][0], score[n][1], score[n][2], score[n][3],                score[n][4], score[n][4]/4.0+EPS);        #endif        n++;        //添加数据结束    }    return;}int rank(int rec){    int ranking = 1;    for(int i = 0; i < n; i++)if(!removed[i])    {        if(score[rec][4] < score[i][4]) ranking++;    }    return ranking;}void DQ(int isq)//声明删除查询函数DQ 参数 整型变量 isq:查询指令标识 isq=1表示查询 isq=0表示删除{    char s[maxl];    for(;;)    {        printf("Please enter SID or name. Enter 0 to finish.\n");//输出提示信息        scanf("%s", s);        #ifdef TESTING        printf("T:input=%s\n", s);        #endif        if(strcmp(s, "0") == 0) break;        int r = 0;        for(int i = 0; i < n; i++) if(!removed[i])        {            if(strcmp(sid[i], s) == 0 || strcmp(name[i], s) == 0)            {                if(isq) printf("%d %s %d %s %d %d %d %d %d %.2f\n", rank(i), sid[i],                cid[i], name[i], score[i][0], score[i][1], score[i][2], score[i][3],                score[i][4], score[i][4]/4.0+EPS);                else { removed[i] = 1; r++;}            }        }        if(!isq) printf("%d student(s) removed.\n",r);    }}void stat(){    int c;    int sumsc[10],pasc[10],fasc[10],pass[10],tot = 0;    char kemu[10][30] = {"Chinese","Mathematics","English","Programming"};    char as[] = "Average Score: ";    char np[] = "Number of passed students: ";    char nf[] = "Number of failed students: ";        memset(sumsc,0,sizeof(sumsc));    memset(pasc,0,sizeof(pasc));    memset(fasc,0,sizeof(fasc));    memset(pass,0,sizeof(pass));    printf("Please enter class ID, 0 for the whole statistics.\n");    scanf("%d", &c);    #ifdef TESTING    printf("T:input=%d\n", c);    #endif    for(int i = 0; i < n; i++) if(!removed[i])    {        if(cid[i]== c|| c == 0)        {                        int passed = 4;            for(int j = 0; j < 4; j++)            {                sumsc[j] += score[i][j];                if(score[i][j] >= 60) pasc[j]++;                else                {                    passed--;                    fasc[j]++;                }            }            if(passed == 4) {pass[4]++;pass[3]++;pass[2]++;pass[1]++;}            else if(passed == 3) {pass[3]++;pass[2]++;pass[1]++;}            else if(passed == 2) {pass[2]++;pass[1]++;}            else if(passed == 1) pass[1]++;            else pass[0]++;            tot++;        }        #ifdef TESTING        printf("T:i=%d tot=%d\n", i, tot);        #endif    }    if(n)    {        for(int i = 0; i < 4; i++)        {            double avsc;            if(tot) avsc=sumsc[i]*1.0/tot+EPS;            else avsc = 0.0;            printf("%s\n%s%.2lf\n", kemu[i],as,avsc+EPS);            printf("%s%d\n", np, pasc[i]);            printf("%s%d\n\n", nf, fasc[i]);        }        printf("Overall:\nNumber of students who passed all subjects: %d\n",pass[4]);        printf("Number of students who passed 3 or more subjects: %d\n",pass[3]);        printf("Number of students who passed 2 or more subjects: %d\n",pass[2]);        printf("Number of students who passed 1 or more subjects: %d\n",pass[1]);        printf("Number of students who failed all subjects: %d\n\n",pass[0]);    }}#ifdef TESTINGvoid showranking(){    printf("Showing the ranklist hurts students' self-esteem. Do that.\n");    int ranking[maxl], last=1;    for(int i = 0; i < maxl; i++) ranking[i] = 1;        for(int i = 0; i < n; i++)if(!removed[i])    {        for(int j = 0; j < n ; j++)if(!removed[j])        {            if(score[i][4] < score[j][4])            {                ranking[i]++;                printf("i=%d j=%d ranking=%d\n",i,j,ranking[i]);            }        }        if(last < ranking[i]) last = ranking[i];    }    int pranking = 1;    for(int j = 0; j <last; j++)    {        for(int i = 0; i < n; i++)if(!removed[i])        {                if(ranking[i]==pranking)                {                    printf("i=%d rank=%d pranking=%d %s %d %s %d %d %d %d %d %.2f\n", i, ranking[i], pranking, sid[i],                            cid[i], name[i], score[i][0], score[i][1], score[i][2], score[i][3],                            score[i][4], score[i][4]/4.0+EPS);                }        }        pranking++;    }}#endifint main(){    #ifdef LOCAL    freopen("lt4-6.in","r",stdin);    freopen("lt4-6.out","w",stdout);    #endif    memset(score,0,sizeof(score));    memset(removed,0,sizeof(removed));    memset(cid,0,sizeof(cid));    memset(sid,0,sizeof(sid));    memset(name,0,sizeof(name));    for(;;)    {        int choice;//声明整型变量choice:操作选项        print_menu();//执行打印目录函数        scanf("%d", &choice);//读入一个整数 赋值给操作选项choice函数        #ifdef TESTING        printf("T:choice=%d\n", choice);        #endif        if(choice == 0) break;//如果操作选项为0,终止程序        if(choice == 1) add();//如果操作选项为1,执行添加函数 add()        if(choice == 2) DQ(0);//如果操作选项为2,执行删除查询函数DQ() 参数0(删除功能)        if(choice == 3) DQ(1);//如果操作选项为3,执行删除查询函数DQ() 参数1(查询功能)        if(choice == 4) printf("Showing the ranklist hurts students' self-esteem. Don't do that.\n");        //如果操作选项为4 输出提示信息        if(choice == 5) stat();////如果操作选项为5,执行统计函数 stat()        #ifdef TESTING        if(choice == 6) showranking();        #endif    }    return 0;}

对拍时参考的标程(来源:http://blog.tobygameac.com/2013/08/uva-12412-typical-homework-aka-shi.html)

#include <cstdio>#include <string>#include <vector>#include <map>#include <algorithm>#define PB push_backusing namespace std;typedef string Course;class Student { public:  Student(string SID, int CID, string name, vector<int> scores) : SID(SID), CID(CID), name(name), scores(scores) {    total = 0;    for (int i = 0; i < scores.size(); i++) {      total += scores[i];    }    average = total / (double)scores.size();  }  string SID, name;  int CID;  vector<int> scores;  int total;  double average;};class SPMS { public:  SPMS(vector<Course> courses) : courses(courses) {}  void run() {    int option = -1;    do {      switch (option) {       case 1:        add();        break;       case 2:        remove();        break;       case 3:        query();        break;       case 4:        showRanking();        break;       case 5:        showStatics();        break;      }      puts("Welcome to Student Performance Management System (SPMS).\n");      puts("1 - Add");      puts("2 - Remove");      puts("3 - Query");      puts("4 - Show ranking");      puts("5 - Show Statistics");      puts("0 - Exit");      puts("");    } while (scanf("%d", &option) && option);  } private:  void add() {    char SID[99];    puts("Please enter the SID, CID, name and four scores. Enter 0 to finish.");    while (scanf("%s", SID) && string(SID) != "0") {      int CID;      char name[99];      vector<int> scores;      scanf("%d%s", &CID, name);      for (int i = 0; i < courses.size(); i++) {        int score;        scanf("%d", &score);        scores.PB(score);      }      bool already = false;      for (int i = 0; i < students.size() && !already; i++) {        already = (students[i].SID == SID);      }      if (already) {        puts("Duplicated SID.");      } else {        students.PB(Student(SID, CID, name, scores));      }      puts("Please enter the SID, CID, name and four scores. Enter 0 to finish.");    }  }  void remove() {    char keyword[99];    puts("Please enter SID or name. Enter 0 to finish.");    while (scanf("%s", keyword) && string(keyword) != "0") {      int removedNum = 0;      for (int i = 0; i < students.size(); i++) {        Student & student = students[i];        if ((student.SID == keyword) || (student.name == keyword)) {          students.erase(students.begin() + i--);          removedNum++;        }      }      printf("%d student(s) removed.\n", removedNum);      puts("Please enter SID or name. Enter 0 to finish.");    }  }  void query() {    char keyword[99];    puts("Please enter SID or name. Enter 0 to finish.");    while (scanf("%s", keyword) && string(keyword) != "0") {      adjustRank();      for (int i = 0; i < students.size(); i++) {        Student & student = students[i];        if ((student.SID == keyword) || (student.name == keyword)) {          printf("%d %s %d %s", rankOfScore[student.total], student.SID.c_str(), student.CID, student.name.c_str());          for (int j = 0; j < student.scores.size(); j++) {            printf(" %d", student.scores[j]);          }          printf(" %d %.2lf\n", student.total, student.average + 1e-5);        }      }      puts("Please enter SID or name. Enter 0 to finish.");    }  }  void showRanking() {    puts("Showing the ranklist hurts students' self-esteem. Don't do that.");  }  void showStatics() {    puts("Please enter class ID, 0 for the whole statistics.");    int CID;    scanf("%d", &CID);    for (int c = 0; c < courses.size(); c++) {      puts(courses[c].c_str());      int num = 0, total = 0, passed = 0;      for (int i = 0; i < students.size(); i++) {        Student & student = students[i];        if (!CID || (student.CID == CID)) {          num++;          total += student.scores[c];          passed += (student.scores[c] >= 60);        }      }      printf("Average Score: %.2lf\n", total / (double)(num == 0 ? 1 : num) + 1e-5);      printf("Number of passed students: %d\n", passed);      printf("Number of failed students: %d\n", num - passed);      puts("");    }    vector<int> passedNum(courses.size() + 1, 0);    for (int i = 0; i < students.size(); i++) {      Student & student = students[i];      if (!CID || (student.CID == CID)) {        int passed = 0;        for (int c = 0; c < courses.size(); c++) {          passed += (student.scores[c] >= 60);        }        passedNum[passed]++;      }    }    puts("Overall:");    printf("Number of students who passed all subjects: %d\n", passedNum.back());    for (int i = passedNum.size() - 2; i > 0; i--) {      passedNum[i] += passedNum[i + 1];      printf("Number of students who passed %d or more subjects: %d\n", i, passedNum[i]);    }    printf("Number of students who failed all subjects: %d\n", passedNum[0]);    puts("");  }  void adjustRank() {    rankOfScore.clear();    vector<int> allScores;    for (int i = 0; i < students.size(); i++) {      allScores.PB(students[i].total);    }    sort(allScores.begin(), allScores.end());    reverse(allScores.begin(), allScores.end());    for (int i = 0; i < allScores.size(); i++) {      if (rankOfScore.find(allScores[i]) == rankOfScore.end()) {        rankOfScore[allScores[i]] = i + 1;      }    }  }  vector<Course> courses;  vector<Student> students;  map<int, int> rankOfScore;};int main() {  vector<Course> courses;  courses.PB("Chinese");  courses.PB("Mathematics");  courses.PB("English");  courses.PB("Programming");  SPMS spms(courses);  spms.run();  return 0;}

测试数据:

10011223344 1 John 79 98 91 1000022334455 1 Tom 59 72 60 810011223344 2 Alice 100 100 100 1002423475629 2 John 60 80 30 9902JohnTom010011223344 1 John 79 98 91 100010000000001 1 AA 1 2 3 40000000002 2 AB 2 3 4 50000000003 3 AC 3 4 5 60000000004 4 AA 4 5 6 70000000005 5 AB 5 6 7 80000000006 6 AC 6 7 8 90000000007 7 AA 7 8 9 100000000008 8 AB 8 9 10 110000000009 9 AC 9 10 11 120000000010 10 AA 10 11 12 130000000011 11 AB 11 12 13 140000000012 12 AC 12 13 14 150000000013 13 AA 13 14 15 160000000014 14 AB 14 15 16 170000000015 15 AC 15 16 17 180000000016 16 AA 16 17 18 190000000017 17 AB 17 18 19 200000000018 18 AC 18 19 20 210000000019 19 AA 19 20 21 220000000020 20 AB 20 21 22 230000000021 1 AC 21 22 23 240000000022 2 AA 22 23 24 250000000023 3 AB 23 24 25 260000000024 4 AC 24 25 26 270000000025 5 AA 25 26 27 280000000026 6 AB 26 27 28 290000000027 7 AC 27 28 29 300000000028 8 AA 28 29 30 310000000029 9 AB 29 30 31 320000000030 10 AC 30 31 32 330000000031 11 AA 31 32 33 340000000032 12 AB 32 33 34 350000000033 13 AC 33 34 35 360000000034 14 AA 34 35 36 370000000035 15 AB 35 36 37 380000000036 16 AC 36 37 38 390000000037 17 AA 37 38 39 400000000038 18 AB 38 39 40 410000000039 19 AC 39 40 41 420000000040 20 AA 40 41 42 430000000041 1 AB 41 42 43 440000000042 2 AC 42 43 44 450000000043 3 AA 43 44 45 460000000044 4 AB 44 45 46 470000000045 5 AC 45 46 47 480000000046 6 AA 46 47 48 490000000047 7 AB 47 48 49 500000000048 8 AC 48 49 50 510000000049 9 AA 49 50 51 520000000050 10 AB 50 51 52 530000000051 11 AC 51 52 53 540000000052 12 AA 52 53 54 550000000053 13 AB 53 54 55 560000000054 14 AC 54 55 56 570000000055 15 AA 55 56 57 580000000056 16 AB 56 57 58 590000000057 17 AC 57 58 59 600000000058 18 AA 58 59 60 610000000059 19 AB 59 60 61 620000000060 20 AC 60 61 62 630000000061 1 AA 61 62 63 640000000062 2 AB 62 63 64 650000000063 3 AC 63 64 65 660000000064 4 AA 64 65 66 670000000065 5 AB 65 66 67 680000000066 6 AC 66 67 68 690000000067 7 AA 67 68 69 700000000068 8 AB 68 69 70 710000000069 9 AC 69 70 71 720000000070 10 AA 70 71 72 730000000071 11 AB 71 72 73 740000000072 12 AC 72 73 74 750000000073 13 AA 73 74 75 760000000074 14 AB 74 75 76 770000000075 15 AC 75 76 77 780000000076 16 AA 76 77 78 790000000077 17 AB 77 78 79 800000000078 18 AC 78 79 80 810000000079 19 AA 79 80 81 820000000080 20 AB 80 81 82 830000000081 1 AC 81 82 83 840000000082 2 AA 82 83 84 850000000083 3 AB 83 84 85 860000000084 4 AC 84 85 86 870000000085 5 AA 85 86 87 880000000086 6 AB 86 87 88 890000000087 7 AC 87 88 89 900000000088 8 AA 88 89 90 910000000089 9 AB 89 90 91 920000000090 10 AC 90 91 92 930000000091 11 AA 91 92 93 940000000092 12 AB 92 93 94 950000000093 13 AC 93 94 95 960000000094 14 AA 94 95 96 970000000095 15 AB 95 96 97 980000000096 16 AC 96 97 98 990000000097 17 AA 97 98 99 1000000000098 18 AB 98 99 100 10000000099 19 AC 99 100 1 20000000100 20 AA 100 1 2 3030022334455John05120011223344050451525354565202AA010000000001 1 AA 1 2 3 40000000002 2 AB 2 3 4 50000000003 3 AC 3 4 5 60000000004 4 AA 4 5 6 70000000005 5 AB 5 6 7 80000000006 6 AC 6 7 8 90000000007 7 AA 7 8 9 100000000008 8 AB 8 9 10 110000000009 9 AC 9 10 11 120000000010 10 AA 10 11 12 130000000011 11 AB 11 12 13 140000000012 12 AC 12 13 14 150000000013 13 AA 13 14 15 160000000014 14 AB 14 15 16 170000000015 15 AC 15 16 17 180000000016 16 AA 16 17 18 190000000017 17 AB 17 18 19 200000000018 18 AC 18 19 20 210000000019 19 AA 19 20 21 220000000020 20 AB 20 21 22 230000000021 1 AC 21 22 23 240000000022 2 AA 22 23 24 250000000023 3 AB 23 24 25 260000000024 4 AC 24 25 26 270000000025 5 AA 25 26 27 280000000026 6 AB 26 27 28 290000000027 7 AC 27 28 29 300000000028 8 AA 28 29 30 310000000029 9 AB 29 30 31 320000000030 10 AC 30 31 32 330000000031 11 AA 31 32 33 340000000032 12 AB 32 33 34 350000000033 13 AC 33 34 35 360000000034 14 AA 34 35 36 370000000035 15 AB 35 36 37 380000000036 16 AC 36 37 38 390000000037 17 AA 37 38 39 400000000038 18 AB 38 39 40 410000000039 19 AC 39 40 41 420000000040 20 AA 40 41 42 430000000041 1 AB 41 42 43 440000000042 2 AC 42 43 44 450000000043 3 AA 43 44 45 460000000044 4 AB 44 45 46 470000000045 5 AC 45 46 47 480000000046 6 AA 46 47 48 490000000047 7 AB 47 48 49 500000000048 8 AC 48 49 50 510000000049 9 AA 49 50 51 520000000050 10 AB 50 51 52 530000000051 11 AC 51 52 53 540000000052 12 AA 52 53 54 550000000053 13 AB 53 54 55 560000000054 14 AC 54 55 56 570000000055 15 AA 55 56 57 580000000056 16 AB 56 57 58 590000000057 17 AC 57 58 59 600000000058 18 AA 58 59 60 610000000059 19 AB 59 60 61 620000000060 20 AC 60 61 62 630000000061 1 AA 61 62 63 640000000062 2 AB 62 63 64 650000000063 3 AC 63 64 65 660000000064 4 AA 64 65 66 670000000065 5 AB 65 66 67 680000000066 6 AC 66 67 68 690000000067 7 AA 67 68 69 700000000068 8 AB 68 69 70 710000000069 9 AC 69 70 71 720000000070 10 AA 70 71 72 730000000071 11 AB 71 72 73 740000000072 12 AC 72 73 74 750000000073 13 AA 73 74 75 760000000074 14 AB 74 75 76 770000000075 15 AC 75 76 77 780000000076 16 AA 76 77 78 790000000077 17 AB 77 78 79 800000000078 18 AC 78 79 80 810000000079 19 AA 79 80 81 820000000080 20 AB 80 81 82 830000000081 1 AC 81 82 83 840000000082 2 AA 82 83 84 850000000083 3 AB 83 84 85 860000000084 4 AC 84 85 86 870000000085 5 AA 85 86 87 880000000086 6 AB 86 87 88 890000000087 7 AC 87 88 89 900000000088 8 AA 88 89 90 910000000089 9 AB 89 90 91 920000000090 10 AC 90 91 92 930000000091 11 AA 91 92 93 940000000092 12 AB 92 93 94 950000000093 13 AC 93 94 95 960000000094 14 AA 94 95 96 970000000095 15 AB 95 96 97 980000000096 16 AC 96 97 98 990000000097 17 AA 97 98 99 1000000000098 18 AB 98 99 100 10000000099 19 AC 99 100 1 20000000100 20 AA 100 1 2 302AC010000000001 1 AA 1 2 3 40000000002 2 AB 2 3 4 50000000003 3 AC 3 4 5 60000000004 4 AA 4 5 6 70000000005 5 AB 5 6 7 80000000006 6 AC 6 7 8 90000000007 7 AA 7 8 9 100000000008 8 AB 8 9 10 110000000009 9 AC 9 10 11 120000000010 10 AA 10 11 12 130000000011 11 AB 11 12 13 140000000012 12 AC 12 13 14 150000000013 13 AA 13 14 15 160000000014 14 AB 14 15 16 170000000015 15 AC 15 16 17 180000000016 16 AA 16 17 18 190000000017 17 AB 17 18 19 200000000018 18 AC 18 19 20 210000000019 19 AA 19 20 21 220000000020 20 AB 20 21 22 230000000021 1 AC 21 22 23 240000000022 2 AA 22 23 24 250000000023 3 AB 23 24 25 260000000024 4 AC 24 25 26 270000000025 5 AA 25 26 27 280000000026 6 AB 26 27 28 290000000027 7 AC 27 28 29 300000000028 8 AA 28 29 30 310000000029 9 AB 29 30 31 320000000030 10 AC 30 31 32 330000000031 11 AA 31 32 33 340000000032 12 AB 32 33 34 350000000033 13 AC 33 34 35 360000000034 14 AA 34 35 36 370000000035 15 AB 35 36 37 380000000036 16 AC 36 37 38 390000000037 17 AA 37 38 39 400000000038 18 AB 38 39 40 410000000039 19 AC 39 40 41 420000000040 20 AA 40 41 42 430000000041 1 AB 41 42 43 440000000042 2 AC 42 43 44 450000000043 3 AA 43 44 45 460000000044 4 AB 44 45 46 470000000045 5 AC 45 46 47 480000000046 6 AA 46 47 48 490000000047 7 AB 47 48 49 500000000048 8 AC 48 49 50 510000000049 9 AA 49 50 51 520000000050 10 AB 50 51 52 530000000051 11 AC 51 52 53 540000000052 12 AA 52 53 54 550000000053 13 AB 53 54 55 560000000054 14 AC 54 55 56 570000000055 15 AA 55 56 57 580000000056 16 AB 56 57 58 590000000057 17 AC 57 58 59 600000000058 18 AA 58 59 60 610000000059 19 AB 59 60 61 620000000060 20 AC 60 61 62 630000000061 1 AA 61 62 63 640000000062 2 AB 62 63 64 650000000063 3 AC 63 64 65 660000000064 4 AA 64 65 66 670000000065 5 AB 65 66 67 680000000066 6 AC 66 67 68 690000000067 7 AA 67 68 69 700000000068 8 AB 68 69 70 710000000069 9 AC 69 70 71 720000000070 10 AA 70 71 72 730000000071 11 AB 71 72 73 740000000072 12 AC 72 73 74 750000000073 13 AA 73 74 75 760000000074 14 AB 74 75 76 770000000075 15 AC 75 76 77 780000000076 16 AA 76 77 78 790000000077 17 AB 77 78 79 800000000078 18 AC 78 79 80 810000000079 19 AA 79 80 81 820000000080 20 AB 80 81 82 830000000081 1 AC 81 82 83 840000000082 2 AA 82 83 84 850000000083 3 AB 83 84 85 860000000084 4 AC 84 85 86 870000000085 5 AA 85 86 87 880000000086 6 AB 86 87 88 890000000087 7 AC 87 88 89 900000000088 8 AA 88 89 90 910000000089 9 AB 89 90 91 920000000090 10 AC 90 91 92 930000000091 11 AA 91 92 93 940000000092 12 AB 92 93 94 950000000093 13 AC 93 94 95 960000000094 14 AA 94 95 96 970000000095 15 AB 95 96 97 980000000096 16 AC 96 97 98 990000000097 17 AA 97 98 99 1000000000098 18 AB 98 99 100 10000000099 19 AC 99 100 1 20000000100 20 AA 100 1 2 305152535455565758595105115125135145155165175185195205043ABACAAADJohnTom0502ABACAA0502JohnTomAA05010000000001 1 AA2asdffds 1 2 3 40000000002 2 AB3459fdsw 2 3 4 50000000003 3 AA3asdffds 3 4 5 60000000004 4 AB3460fdsw 4 5 6 70000000005 5 AA4asdffds 5 6 7 80000000006 6 AB3461fdsw 6 7 8 90000000007 7 AA5asdffds 7 8 9 100000000008 8 AB3462fdsw 8 9 10 110000000009 9 AA6asdffds 9 10 11 120000000010 10 AA3asdffds 10 11 12 130000000011 11 AB3460fdsw 11 12 13 140000000012 12 AA4asdffds 12 13 14 150000000013 13 AB3461fdsw 13 14 15 160000000014 14 AA5asdffds 14 15 16 170000000015 15 AB3462fdsw 15 16 17 180000000016 16 AA6asdffds 16 17 18 190000000017 17 AB3463fdsw 17 18 19 200000000018 18 AA7asdffds 18 19 20 210000000019 19 AA4asdffds 19 20 21 220000000020 20 AB3461fdsw 20 21 22 230000000021 1 AA5asdffds 21 22 23 240000000022 2 AB3462fdsw 22 23 24 250000000023 3 AA6asdffds 23 24 25 260000000024 4 AB3463fdsw 24 25 26 270000000025 5 AA7asdffds 25 26 27 280000000026 6 AB3464fdsw 26 27 28 290000000027 7 AA8asdffds 27 28 29 300000000028 8 AA5asdffds 28 29 30 310000000029 9 AB3462fdsw 29 30 31 320000000030 10 AA6asdffds 30 31 32 330000000031 11 AB3463fdsw 31 32 33 340000000032 12 AA7asdffds 32 33 34 350000000033 13 AB3464fdsw 33 34 35 360000000034 14 AA8asdffds 34 35 36 370000000035 15 AB3465fdsw 35 36 37 380000000036 16 AA9asdffds 36 37 38 390000000037 17 AA6asdffds 37 38 39 400000000038 18 AB3463fdsw 38 39 40 410000000039 19 AA7asdffds 39 40 41 420000000040 20 AB3464fdsw 40 41 42 430000000041 1 AA8asdffds 41 42 43 440000000042 2 AB3465fdsw 42 43 44 450000000043 3 AA9asdffds 43 44 45 460000000044 4 AB3466fdsw 44 45 46 470000000045 5 AA10asdffds 45 46 47 480000000046 6 AA7asdffds 46 47 48 490000000047 7 AB3464fdsw 47 48 49 500000000048 8 AA8asdffds 48 49 50 510000000049 9 AB3465fdsw 49 50 51 520000000050 10 AA9asdffds 50 51 52 530000000051 11 AB3466fdsw 51 52 53 540000000052 12 AA10asdffds 52 53 54 550000000053 13 AB3467fdsw 53 54 55 560000000054 14 AA11asdffds 54 55 56 570000000055 15 AA8asdffds 55 56 57 580000000056 16 AB3465fdsw 56 57 58 590000000057 17 AA9asdffds 57 58 59 600000000058 18 AB3466fdsw 58 59 60 610000000059 19 AA10asdffds 59 60 61 620000000060 20 AB3467fdsw 60 61 62 630000000061 1 AA11asdffds 61 62 63 640000000062 2 AB3468fdsw 62 63 64 650000000063 3 AA12asdffds 63 64 65 660000000064 4 AA9asdffds 64 65 66 670000000065 5 AB3466fdsw 65 66 67 680000000066 6 AA10asdffds 66 67 68 690000000067 7 AB3467fdsw 67 68 69 700000000068 8 AA11asdffds 68 69 70 710000000069 9 AB3468fdsw 69 70 71 720000000070 10 AA12asdffds 70 71 72 730000000071 11 AB3469fdsw 71 72 73 740000000072 12 AA13asdffds 72 73 74 750000000073 13 AA10asdffds 73 74 75 760000000074 14 AB3467fdsw 74 75 76 770000000075 15 AA11asdffds 75 76 77 780000000076 16 AB3468fdsw 76 77 78 790000000077 17 AA12asdffds 77 78 79 800000000078 18 AB3469fdsw 78 79 80 810000000079 19 AA13asdffds 79 80 81 820000000080 20 AB3470fdsw 80 81 82 830000000081 1 AA14asdffds 81 82 83 840000000082 2 AA11asdffds 82 83 84 850000000083 3 AB3468fdsw 83 84 85 860000000084 4 AA12asdffds 84 85 86 870000000085 5 AB3469fdsw 85 86 87 880000000086 6 AA13asdffds 86 87 88 890000000087 7 AB3470fdsw 87 88 89 900000000088 8 AA14asdffds 88 89 90 910000000089 9 AB3471fdsw 89 90 91 920000000090 10 AA15asdffds 90 91 92 930000000091 11 AA12asdffds 91 92 93 940000000092 12 AB3469fdsw 92 93 94 950000000093 13 AA13asdffds 93 94 95 960000000094 14 AB3470fdsw 94 95 96 970000000095 15 AA14asdffds 95 96 97 980000000096 16 AB3471fdsw 96 97 98 990000000097 17 AA15asdffds 97 98 99 1000000000098 18 AB3472fdsw 98 99 100 10000000099 19 AA16asdffds 99 100 1 20000000100 20 AA13asdffds 100 1 2 30000000001 1 AA2asdffds 1 2 3 40000000002 2 AB3459fdsw 2 3 4 50000000003 3 AA3asdffds 3 4 5 60000000004 4 AB3460fdsw 4 5 6 70000000005 5 AA4asdffds 5 6 7 80000000006 6 AB3461fdsw 6 7 8 90000000007 7 AA5asdffds 7 8 9 100000000008 8 AB3462fdsw 8 9 10 110000000009 9 AA6asdffds 9 10 11 120000000010 10 AA3asdffds 10 11 12 130000000011 11 AB3460fdsw 11 12 13 140000000012 12 AA4asdffds 12 13 14 150000000013 13 AB3461fdsw 13 14 15 160000000014 14 AA5asdffds 14 15 16 170000000015 15 AB3462fdsw 15 16 17 180000000016 16 AA6asdffds 16 17 18 190000000017 17 AB3463fdsw 17 18 19 200000000018 18 AA7asdffds 18 19 20 210000000019 19 AA4asdffds 19 20 21 220000000020 20 AB3461fdsw 20 21 22 230000000021 1 AA5asdffds 21 22 23 240000000022 2 AB3462fdsw 22 23 24 250000000023 3 AA6asdffds 23 24 25 260000000024 4 AB3463fdsw 24 25 26 270000000025 5 AA7asdffds 25 26 27 280000000026 6 AB3464fdsw 26 27 28 290000000027 7 AA8asdffds 27 28 29 300000000028 8 AA5asdffds 28 29 30 310000000029 9 AB3462fdsw 29 30 31 320000000030 10 AA6asdffds 30 31 32 330000000031 11 AB3463fdsw 31 32 33 340000000032 12 AA7asdffds 32 33 34 350000000033 13 AB3464fdsw 33 34 35 360000000034 14 AA8asdffds 34 35 36 370000000035 15 AB3465fdsw 35 36 37 380000000036 16 AA9asdffds 36 37 38 390000000037 17 AA6asdffds 37 38 39 400000000038 18 AB3463fdsw 38 39 40 410000000039 19 AA7asdffds 39 40 41 420000000040 20 AB3464fdsw 40 41 42 430000000041 1 AA8asdffds 41 42 43 440000000042 2 AB3465fdsw 42 43 44 450000000043 3 AA9asdffds 43 44 45 460000000044 4 AB3466fdsw 44 45 46 470000000045 5 AA10asdffds 45 46 47 480000000046 6 AA7asdffds 46 47 48 490000000047 7 AB3464fdsw 47 48 49 500000000048 8 AA8asdffds 48 49 50 510000000049 9 AB3465fdsw 49 50 51 520000000050 10 AA9asdffds 50 51 52 530000000051 11 AB3466fdsw 51 52 53 540000000052 12 AA10asdffds 52 53 54 550000000053 13 AB3467fdsw 53 54 55 560000000054 14 AA11asdffds 54 55 56 570000000055 15 AA8asdffds 55 56 57 580000000056 16 AB3465fdsw 56 57 58 590000000057 17 AA9asdffds 57 58 59 600000000058 18 AB3466fdsw 58 59 60 610000000059 19 AA10asdffds 59 60 61 620000000060 20 AB3467fdsw 60 61 62 630000000061 1 AA11asdffds 61 62 63 640000000062 2 AB3468fdsw 62 63 64 650000000063 3 AA12asdffds 63 64 65 660000000064 4 AA9asdffds 64 65 66 670000000065 5 AB3466fdsw 65 66 67 680000000066 6 AA10asdffds 66 67 68 690000000067 7 AB3467fdsw 67 68 69 700000000068 8 AA11asdffds 68 69 70 710000000069 9 AB3468fdsw 69 70 71 720000000070 10 AA12asdffds 70 71 72 730000000071 11 AB3469fdsw 71 72 73 740000000072 12 AA13asdffds 72 73 74 750000000073 13 AA10asdffds 73 74 75 760000000074 14 AB3467fdsw 74 75 76 770000000075 15 AA11asdffds 75 76 77 780000000076 16 AB3468fdsw 76 77 78 790000000077 17 AA12asdffds 77 78 79 800000000078 18 AB3469fdsw 78 79 80 810000000079 19 AA13asdffds 79 80 81 820000000080 20 AB3470fdsw 80 81 82 830000000081 1 AA14asdffds 81 82 83 840000000082 2 AA11asdffds 82 83 84 850000000083 3 AB3468fdsw 83 84 85 860000000084 4 AA12asdffds 84 85 86 870000000085 5 AB3469fdsw 85 86 87 880000000086 6 AA13asdffds 86 87 88 890000000087 7 AB3470fdsw 87 88 89 900000000088 8 AA14asdffds 88 89 90 910000000089 9 AB3471fdsw 89 90 91 920000000090 10 AA15asdffds 90 91 92 930000000091 11 AA12asdffds 91 92 93 940000000092 12 AB3469fdsw 92 93 94 950000000093 13 AA13asdffds 93 94 95 960000000094 14 AB3470fdsw 94 95 96 970000000095 15 AA14asdffds 95 96 97 980000000096 16 AB3471fdsw 96 97 98 990000000097 17 AA15asdffds 97 98 99 1000000000098 18 AB3472fdsw 98 99 100 10000000099 19 AA16asdffds 99 100 1 20000000100 20 AA13asdffds 100 1 2 30500


0 0