[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

成绩单排序(多条件)挑战

本帖最后由 ivor 于 2019-6-1 10:00 编辑

同时满足以下条件:
1.语文升序
2.数学降序
3.英语升序
4.化学降序
5.生物升序

每一行的数据不能改变,排序最小单位是行,条件是列

不限制语言,数据约1w条。1秒内

样本:
语文 数学 英语 化学 生物
79 77 70 77 67
64 70 74 75 72
79 64 72 62 76
62 75 65 71 63
79 76 62 62 77
66 63 77 75 79
74 75 72 61 61
71 63 79 60 70
74 64 74 78 69


抛砖引玉
  1. GC "1.txt"  | select @{name='语文'; expression={$_.split(" ")[0]}},
  2. @{name='数学'; expression={$_.split(" ")[1]}},
  3. @{name='英语'; expression={$_.split(" ")[2]}},
  4. @{name='化学'; expression={$_.split(" ")[3]}},
  5. @{name='生物'; expression={$_.split(" ")[4]}} | `
  6. Sort-Object -Property @{Expression = {$_.语文}; Ascending = $true},
  7. @{Expression = {$_.数学}; Ascending = $false},
  8. @{Expression = {$_.英语}; Ascending = $true},
  9. @{Expression = {$_.化学}; Ascending = $false},
  10. @{Expression = {$_.生物}; Ascending = $true}
复制代码
1

评分人数

本帖最后由 Gin_Q 于 2020-2-28 19:40 编辑

学到结构体!想到用于这个题目相当合适!!!
  1. #include <stdio.h>
  2. struct Student
  3. {
  4. int nu_1;
  5. int nu_2;
  6. int nu_3;
  7. int nu_4;
  8. int nu_5;
  9. };
  10. int main(void)
  11. {
  12. struct Student arr[9]={{79,77,70,77,67},{64,70,74,75,72},{79,64,72,62,76},{62,75,65,71,63},
  13. {79,76,62,62,77},{66,63,77,75,79},{74,75,72,61,61},{71,63,79,60,70},{74,64,74,78,69}};
  14. struct Student temp;
  15. const int n=9;
  16. int i,j;
  17. for (i=0;i<n-1;i++)
  18. {
  19. for (j=i+1;j<n;j++)
  20. {
  21. if (arr[i].nu_1>arr[j].nu_1)
  22. {
  23. temp=arr[i];arr[i]=arr[j];arr[j]=temp;
  24. }
  25. }
  26. }
  27. printf("语文 数学 英语 化学 生物\n");
  28. for (i=0;i<n;i++) printf("%-5d%-5d%-5d%-5d%-5d\n",arr[i].nu_1,arr[i].nu_2,arr[i].nu_3,arr[i].nu_4,arr[i].nu_5);
  29. return 0;
  30. }
复制代码
  1. 语文 数学 英语 化学 生物
  2. 62   75   65   71   63
  3. 64   70   74   75   72
  4. 66   63   77   75   79
  5. 71   63   79   60   70
  6. 74   75   72   61   61
  7. 74   64   74   78   69
  8. 79   77   70   77   67
  9. 79   76   62   62   77
  10. 79   64   72   62   76
  11. --------------------------------
  12. Process exited after 0.01317 seconds with return value 0
  13. 请按任意键继续. . .
复制代码

TOP

本帖最后由 Gin_Q 于 2020-2-25 10:49 编辑

1W行1秒内没有问题的!(CPU型号 :Intel(R) Celeron(R) CPU G1840 @ 2.80GHz)
  1. +-----+-----+-----+-----+-----+
  2. |66   |63   |77   |75   |79   |
  3. +-----+-----+-----+-----+-----+
  4. |66   |63   |77   |75   |79   |
  5. +-----+-----+-----+-----+-----+
  6. |66   |63   |77   |75   |79   |
  7. +-----+-----+-----+-----+-----+
  8. |66   |63   |77   |75   |79   |
  9. +-----+-----+-----+-----+-----+
  10. |66   |63   |77   |75   |79   |
  11. +-----+-----+-----+-----+-----+
  12. |66   |63   |77   |75   |79   |
  13. +-----+-----+-----+-----+-----+
  14. 程序耗时:0.916000
复制代码

TOP

本帖最后由 Gin_Q 于 2020-2-26 09:56 编辑
  1. //Dev-C++ 5.11
  2. //排序算法用的是选择排序
  3. //by Gin
  4. #include <time.h>
  5. #include <stdio.h>
  6. #include <string.h>
  7. #include <stdlib.h>
  8. #define LINE_SIZE 100 //行存储大小
  9. FILE *fp(char *,const char *);
  10. int check_width(FILE *fp);
  11. int check_high(FILE *fp);
  12. int main(int argc,char *argv[])
  13. {
  14. clock_t start_t,end_t; //计时
  15. double time_sum; //储存时间
  16. start_t=clock(); //开始计时
  17. FILE *a_txt=fp(argv[1],"r");
  18. FILE *b_txt=fp(argv[2],"w");
  19. int width=0,high=0;
  20. width=check_width(a_txt);
  21. high=check_high(a_txt);
  22. void anay(char *,char *,int linesize,int width); //把二维素组做一维数组传递
  23. void init(char *,int  *,int linesize,int width); //把二维素组做一维数组传递
  24. void sort_min_max(int *p,int high,int width,int n); //小到大
  25. void sort_max_min(int *p,int high,int width,int n); //大到小
  26. void res_print(FILE *fp,int *p,int high,int width,char *p_kemu,char *kemu,char *way,char *form,char *form_1,char *form_2); //打印结果
  27. char mu[LINE_SIZE]="0"; //储存第一行数据
  28. char temp_1[high][width]={"0"};   //存储分割好的数据
  29. char temp[LINE_SIZE]="0"; //存储一行数据
  30. int arr[high][width]={0}; //存储最终数组
  31. int (*p_arr)[width]=arr;
  32. char kemu[5][7]={"0"};
  33. char *p_kemu=kemu[0];
  34. char original[40]="原数据";
  35. char min_m[7]="小到大";
  36. char max_m[7]="大到小";
  37. char form[8]="+-----+";
  38. char form_1[8]="-----+";
  39. char form_2[2]="|";
  40. char spk[2]="\0";
  41. rewind(a_txt);
  42. fgets(mu,LINE_SIZE,a_txt);
  43. anay(mu,(char*)kemu,7,width);
  44. int i;
  45. for (i=0;fgets(temp,LINE_SIZE,a_txt)!=NULL;i++)
  46. {
  47. anay(temp,temp_1[0],width,width);      //将数据分割成二维字符串
  48. init(temp_1[0],arr[i],width,width);   //将二维字符串赋值给二维数组
  49. }
  50. res_print(b_txt,(int *)arr,high,width,p_kemu,spk,original,form,form_1,form_2);
  51. fputc('\n',b_txt);
  52. int mark=0; //0代表升序,1代表降序
  53. for (i=0;i<width;i++)
  54. {
  55. if (mark==0)
  56. {
  57. sort_min_max((int *)arr,high,width,i);
  58. mark=1;
  59. res_print(b_txt,(int *)arr,high,width,p_kemu,kemu[i],min_m,form,form_1,form_2);
  60. }
  61. else if (mark==1)
  62. {
  63. sort_max_min((int *)arr,high,width,i);
  64. mark=0;
  65. res_print(b_txt,(int *)arr,high,width,p_kemu,kemu[i],max_m,form,form_1,form_2);
  66. }
  67. if (i<(high-1)) fputs("\n",b_txt);
  68. }
  69. end_t=clock();
  70. time_sum=(double)(end_t-start_t)/CLOCKS_PER_SEC;
  71. fprintf(b_txt,"程序耗时:%f",time_sum);
  72. fclose(a_txt);
  73. fclose(b_txt);
  74. return 0;
  75. }
  76. FILE *fp(char *p,const char *mode)
  77. {
  78. FILE *pp;
  79. if ((pp= fopen(p,mode))==NULL)
  80. {
  81. printf("open fail! %s",p);
  82. getchar();
  83. exit (0);
  84. }
  85. return pp;
  86. }
  87. //检查数据
  88. int check_width(FILE *fp)
  89. {
  90. rewind(fp);
  91. char delims='0';
  92. int w=1;
  93. for (;(delims=fgetc(fp))!='\n';)
  94. {
  95. if (delims==' ') w++;
  96. }
  97. return w;
  98. }
  99. int check_high(FILE *fp)
  100. {
  101. rewind(fp);
  102. int h=0;
  103. char arr[LINE_SIZE];
  104. for (;fgets(arr,LINE_SIZE,fp)!=NULL;h++);
  105. return h-1; //去掉第一行不算
  106. }
  107. void anay(char *p,char *t,int linesize, int width)
  108. {
  109. int i,j=0,k=0; //j第二维,k第一维
  110. for (i=0;*(p+i)!='\0';i++)
  111. {
  112. if (*(p+i)!=' ' && *(p+i)!='\n')
  113. {
  114. *(t+j*linesize+k)=*(p+i);
  115. k++;
  116. }
  117. else
  118. {
  119. *(t+j*linesize+k)='\0';
  120. j++,k=0;
  121. }
  122. }
  123. }
  124. void init(char *p,int *p1,int linesize,int width)
  125. {
  126. int i;
  127. for (i=0;i<width;i++)
  128. {
  129. *(p1+i)=atoi(p+i*linesize);
  130. }
  131. }
  132. void sort_min_max(int *p,int high,int width,int n)
  133. {
  134. int i,k,l,temp=0;
  135. for (i=0;i<high-1;i++)
  136. {
  137. for (k=i+1;k<high;k++)
  138. {
  139. if (*(p+k*width+n)<*(p+i*width+n))
  140. {
  141. for (l=0;l<width;l++)
  142. {
  143. temp=*(p+k*width+l);
  144. *(p+k*width+l)=*(p+i*width+l);
  145. *(p+i*width+l)=temp;
  146. }
  147. }
  148. }
  149. }
  150. }
  151. void sort_max_min(int *p,int high,int width,int n)
  152. {
  153. int i,k,l,temp=0;
  154. for (i=0;i<high-1;i++)
  155. {
  156. for (k=i+1;k<high;k++)
  157. {
  158. if (*(p+k*width+n)>*(p+i*width+n))
  159. {
  160. for (l=0;l<width;l++)
  161. {
  162. temp=*(p+k*width+l);
  163. *(p+k*width+l)=*(p+i*width+l);
  164. *(p+i*width+l)=temp;
  165. }
  166. }
  167. }
  168. }
  169. }
  170. void res_print(FILE *fp,int *p,int high,int width,char *p_kemu,char *kemu,char *way,char *form,char *form_1,char *form_2)
  171. {
  172. fprintf(fp,"%s%s%s%s%s\n",form,form_1,form_1,form_1,form_1);
  173. fprintf(fp,"%s%6s%-23s%s\n",form_2,way,kemu,form_2);
  174. fprintf(fp,"%s%s%s%s%s\n",form,form_1,form_1,form_1,form_1);
  175. for (int i=0;i<width;i++) fprintf(fp,"%s%-5s",form_2,(p_kemu+i*7));
  176. fprintf(fp,"%s\n%s%s%s%s%s\n",form_2,form,form_1,form_1,form_1,form_1);
  177. int i,j;
  178. for (i=0;i<high;i++)
  179. {
  180. for (j=0;j<width;j++)
  181. {
  182. fprintf(fp,"%s%-5d",form_2,*(p+i*width+j));
  183. }
  184. fprintf(fp,"%s\n",form_2);
  185. fprintf(fp,"%s%s%s%s%s",form,form_1,form_1,form_1,form_1);
  186. fputc('\n',fp);
  187. }
  188. }
复制代码
结果:
  1. +-----+-----+-----+-----+-----+
  2. |原数据                       |
  3. +-----+-----+-----+-----+-----+
  4. |语文 |数学 |英语 |化学 |生物 |
  5. +-----+-----+-----+-----+-----+
  6. |79   |77   |70   |77   |67   |
  7. +-----+-----+-----+-----+-----+
  8. |64   |70   |74   |75   |72   |
  9. +-----+-----+-----+-----+-----+
  10. |79   |64   |72   |62   |76   |
  11. +-----+-----+-----+-----+-----+
  12. |62   |75   |65   |71   |63   |
  13. +-----+-----+-----+-----+-----+
  14. |79   |76   |62   |62   |77   |
  15. +-----+-----+-----+-----+-----+
  16. |66   |63   |77   |75   |79   |
  17. +-----+-----+-----+-----+-----+
  18. |74   |75   |72   |61   |61   |
  19. +-----+-----+-----+-----+-----+
  20. |71   |63   |79   |60   |70   |
  21. +-----+-----+-----+-----+-----+
  22. |74   |64   |74   |78   |69   |
  23. +-----+-----+-----+-----+-----+
  24. +-----+-----+-----+-----+-----+
  25. |小到大语文                   |
  26. +-----+-----+-----+-----+-----+
  27. |语文 |数学 |英语 |化学 |生物 |
  28. +-----+-----+-----+-----+-----+
  29. |62   |75   |65   |71   |63   |
  30. +-----+-----+-----+-----+-----+
  31. |64   |70   |74   |75   |72   |
  32. +-----+-----+-----+-----+-----+
  33. |66   |63   |77   |75   |79   |
  34. +-----+-----+-----+-----+-----+
  35. |71   |63   |79   |60   |70   |
  36. +-----+-----+-----+-----+-----+
  37. |74   |75   |72   |61   |61   |
  38. +-----+-----+-----+-----+-----+
  39. |74   |64   |74   |78   |69   |
  40. +-----+-----+-----+-----+-----+
  41. |79   |77   |70   |77   |67   |
  42. +-----+-----+-----+-----+-----+
  43. |79   |76   |62   |62   |77   |
  44. +-----+-----+-----+-----+-----+
  45. |79   |64   |72   |62   |76   |
  46. +-----+-----+-----+-----+-----+
  47. +-----+-----+-----+-----+-----+
  48. |大到小数学                   |
  49. +-----+-----+-----+-----+-----+
  50. |语文 |数学 |英语 |化学 |生物 |
  51. +-----+-----+-----+-----+-----+
  52. |79   |77   |70   |77   |67   |
  53. +-----+-----+-----+-----+-----+
  54. |79   |76   |62   |62   |77   |
  55. +-----+-----+-----+-----+-----+
  56. |62   |75   |65   |71   |63   |
  57. +-----+-----+-----+-----+-----+
  58. |74   |75   |72   |61   |61   |
  59. +-----+-----+-----+-----+-----+
  60. |64   |70   |74   |75   |72   |
  61. +-----+-----+-----+-----+-----+
  62. |74   |64   |74   |78   |69   |
  63. +-----+-----+-----+-----+-----+
  64. |79   |64   |72   |62   |76   |
  65. +-----+-----+-----+-----+-----+
  66. |71   |63   |79   |60   |70   |
  67. +-----+-----+-----+-----+-----+
  68. |66   |63   |77   |75   |79   |
  69. +-----+-----+-----+-----+-----+
  70. +-----+-----+-----+-----+-----+
  71. |小到大英语                   |
  72. +-----+-----+-----+-----+-----+
  73. |语文 |数学 |英语 |化学 |生物 |
  74. +-----+-----+-----+-----+-----+
  75. |79   |76   |62   |62   |77   |
  76. +-----+-----+-----+-----+-----+
  77. |62   |75   |65   |71   |63   |
  78. +-----+-----+-----+-----+-----+
  79. |79   |77   |70   |77   |67   |
  80. +-----+-----+-----+-----+-----+
  81. |74   |75   |72   |61   |61   |
  82. +-----+-----+-----+-----+-----+
  83. |79   |64   |72   |62   |76   |
  84. +-----+-----+-----+-----+-----+
  85. |74   |64   |74   |78   |69   |
  86. +-----+-----+-----+-----+-----+
  87. |64   |70   |74   |75   |72   |
  88. +-----+-----+-----+-----+-----+
  89. |66   |63   |77   |75   |79   |
  90. +-----+-----+-----+-----+-----+
  91. |71   |63   |79   |60   |70   |
  92. +-----+-----+-----+-----+-----+
  93. +-----+-----+-----+-----+-----+
  94. |大到小化学                   |
  95. +-----+-----+-----+-----+-----+
  96. |语文 |数学 |英语 |化学 |生物 |
  97. +-----+-----+-----+-----+-----+
  98. |74   |64   |74   |78   |69   |
  99. +-----+-----+-----+-----+-----+
  100. |79   |77   |70   |77   |67   |
  101. +-----+-----+-----+-----+-----+
  102. |64   |70   |74   |75   |72   |
  103. +-----+-----+-----+-----+-----+
  104. |66   |63   |77   |75   |79   |
  105. +-----+-----+-----+-----+-----+
  106. |62   |75   |65   |71   |63   |
  107. +-----+-----+-----+-----+-----+
  108. |79   |64   |72   |62   |76   |
  109. +-----+-----+-----+-----+-----+
  110. |79   |76   |62   |62   |77   |
  111. +-----+-----+-----+-----+-----+
  112. |74   |75   |72   |61   |61   |
  113. +-----+-----+-----+-----+-----+
  114. |71   |63   |79   |60   |70   |
  115. +-----+-----+-----+-----+-----+
  116. +-----+-----+-----+-----+-----+
  117. |小到大生物                   |
  118. +-----+-----+-----+-----+-----+
  119. |语文 |数学 |英语 |化学 |生物 |
  120. +-----+-----+-----+-----+-----+
  121. |74   |75   |72   |61   |61   |
  122. +-----+-----+-----+-----+-----+
  123. |62   |75   |65   |71   |63   |
  124. +-----+-----+-----+-----+-----+
  125. |79   |77   |70   |77   |67   |
  126. +-----+-----+-----+-----+-----+
  127. |74   |64   |74   |78   |69   |
  128. +-----+-----+-----+-----+-----+
  129. |71   |63   |79   |60   |70   |
  130. +-----+-----+-----+-----+-----+
  131. |64   |70   |74   |75   |72   |
  132. +-----+-----+-----+-----+-----+
  133. |79   |64   |72   |62   |76   |
  134. +-----+-----+-----+-----+-----+
  135. |79   |76   |62   |62   |77   |
  136. +-----+-----+-----+-----+-----+
  137. |66   |63   |77   |75   |79   |
  138. +-----+-----+-----+-----+-----+
  139. 程序耗时:0.000000
复制代码

TOP

回复 8# ivor


    skip=1跳过标题行了。测试数据不包含标题行吗?

TOP

有种使用数据库的冲动
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

小白来个python版的:
  1. file = "test.txt"
  2. result = "res.txt"
  3. with open(file,"r",encoding="utf8") as f:
  4.     head = f.readline()    #读第一行头
  5.     gen = (tuple(int(x) for x in line.split()) for line in f)
  6.     res = sorted(gen,key=lambda x:(x[0],-x[1],x[2],-x[3],x[4]))  #多条件排序,取负值按降序
  7. with open(result,"w") as f:
  8.     f.write(head)         #写第一行头
  9.     for i in res:
  10.         f.write(" ".join(str(x) for x in i)) #拼接成字符串写入
  11.         f.write("\n")
复制代码
python性能肯定不是最快的,用了7楼CrLf生成的测试数据1W条,运行完成时间是0.33秒左右。

TOP

本帖最后由 523066680 于 2019-6-2 07:55 编辑

回复 12# WHY

    不在意秒,之前也未报时间。而是ivor写的 "最" 有一种钦定的意思,后面还有未发帖的人呢。ivor已经回复我了。

TOP

回复 11# 523066680


    是的,如果非常在意零点几秒速度的话,这个问题用 PowerShell 来解不合适,甚至比不过 js 脚本。
但多一种解题思路总是好的,并且 PowerShell 功能强大,速度也不算慢。关键是用它能方便地解决问题,又是系统自带,我认为这就够了。

TOP

本帖最后由 523066680 于 2019-6-2 07:50 编辑

PS+C Sharp 处理1W行具体时间是多少, 不懂PS 和 C Sharp

在网上找了一下 时间获取方法:
  1. $start = Get-Date
  2. # 中间代码
  3. $end = Get-Date
  4. Write-Host -ForegroundColor Red ('Total Runtime: ' + ($end - $start).TotalSeconds)
复制代码
Total Runtime: 0.1280073

perl pack 字节流方案  0.08 秒

去掉 unpack 改为按数组索引处理
  1. use File::Slurp;
  2. use Time::HiRes qw/time/;
  3. my $ta = time();
  4. my @lines = read_file("test.txt");
  5. my $head = shift @lines;
  6. my $buff = "";
  7. my @dupl = map {
  8.     my $it = 0;
  9.     s/\r?\n$//;
  10.     pack("C*", map { $it++%2 ? 100-$_ : $_ } split " ", $_);
  11. } @lines;
  12. my @idx = sort { $dupl[$a] cmp $dupl[$b] } (0..$#dupl);
  13. grep { $buff .= $lines[$_] ."\r\n" } @idx;
  14. write_file("pl_out.txt", {binmode=>"raw"}, $buff);
  15. printf "%.3f\n", time() - $ta;
复制代码
含文件输出 0.046s

2楼代码改文件输出 0.045s
1

评分人数

    • ivor: perl我不会,所以不知道时间,尴尬技术 + 1

TOP

加糖,类似5楼操作。
pack - "C"  An unsigned char (octet) value.
打包后的数据是字节对齐的。
  1. use File::Slurp;
  2. STDOUT->autoflush(1);
  3. my @lines = read_file("src.txt");
  4. my $head = shift @lines;
  5. grep {
  6.     my $it = 0;
  7.     printf "%s\n", join(",", map { $it++%2 ? 100-$_ : $_ } unpack("C*", $_));
  8. } sort map {
  9.         my $it = 0;
  10.         s/\r?\n$//;
  11.         pack("C*", map { $it++%2 ? 100-$_ : $_ } split " ", $_);
  12.     } @lines;
复制代码

TOP

回复 7# CrLf


    结果不正确,少一行数据

TOP

用bat对付一万行的数据,到1.4秒貌似下不去了:
  1. @echo off & setlocal enabledelayedexpansion
  2. echo %time% - 开始
  3. for /l %%a in (0 1 99) do (
  4. set /a B=10%%a,L=200-%%a
  5. set B%%a=!B:~-2!
  6. set L%%a=!L:~-2!
  7. )
  8. set B100=xx
  9. set L100=--
  10. echo %time% - 构建映射表
  11. (for /f "skip=1 tokens=1-5" %%a in (test.txt) do (
  12. echo !B%%a!!L%%b!!B%%c!!L%%d!!B%%e! %%a %%b %%c %%d %%e
  13. ))>tmp.txt
  14. echo %time% - 输出临时文件
  15. (echo 语文 数学 英语 化学 生物
  16. for /f "tokens=1*" %%a in ('sort tmp.txt') do echo %%b
  17. )>out.txt
  18. echo %time% - 结束
  19. pause & exit /b
复制代码
附测试数据生成脚本
  1. @echo off & setlocal enabledelayedexpansion
  2. (echo 语文 数学 英语 化学 生物
  3. for /l %%a in (1 1 10000) do (
  4. set /a R1=!random!%%101,R2=!random!%%101,R3=!random!%%101,R4=!random!%%101,R5=!random!%%101
  5. echo !R1! !R2! !R3! !R4! !R5!
  6. ))>test.txt
  7. pause
复制代码

TOP

  1. $Code = @"
  2.     using System;
  3.     using System.Linq;
  4.     using System.Text.RegularExpressions;
  5.     using System.Collections.Generic;
  6.     public static class Program {
  7.         public static IEnumerable<string> Run(string[] lines) {
  8.             var query = from line in lines
  9.                         let m = Regex.Match(line, @"^(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)$")
  10.                         where m.Success == true
  11.                         orderby int.Parse(m.Groups[1].Value), int.Parse(m.Groups[2].Value) descending, int.Parse(m.Groups[3].Value),
  12.                                 int.Parse(m.Groups[4].Value) descending, int.Parse(m.Groups[5].Value)
  13.                         select line;
  14.             return query;
  15.         }
  16.     }
  17. "@;
  18. Add-Type -TypeDefinition $Code;
  19. $arr = [IO.File]::ReadAllLines('1.txt');
  20. [IO.File]::WriteAllLines('2.txt', [Program]::Run($arr));
  21. pause
复制代码
1

评分人数

    • ivor: 结果正确,速度最快技术 + 1

TOP

  1. var fso = new ActiveXObject('Scripting.FileSystemObject');
  2. var txt = fso.OpenTextFile('1.txt', 1).ReadAll();
  3. var arr = txt.replace(/^(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)(?:\r\n|$)/mg,
  4.     function(s0, s1, s2, s3, s4, s5){
  5.         return 100 + 1*s1 + '' + (200 - s2) + '' + (100 + 1*s3) + '' + (200 - s4) + '' + (100 + 1*s5) + ' ' + s0;
  6.     }
  7. ).split(/\r\n/).sort();
  8. fso.OpenTextFile('2.txt', 2, true).Write(arr.join('\r\n').replace(/^\d+ /mg, ''));
复制代码
1

评分人数

TOP

返回列表