码迷,mamicode.com
首页 > 其他好文 > 详细

PAT甲级 1028 List Sorting (25分)(cin cout 超时问题)

时间:2020-02-04 00:39:40      阅读:87      评论:0      收藏:0      [点我收藏+]

标签:语句   namespace   ade   turn   否则   using   clu   div   cstring   

注意: 用scanf 和printf 进行输入输出 否则超时

cin,cout速度慢的原因就是它会将数据先读入缓冲区,然后再读入,所以与scanf的直接读入会有点时间差距。

1.换成scanf 和 printf输入输出

2.加一条语句

ios::sync_with_stdio(false);

题目代码:

 1 #include <cstdio>
 2 #include <cstring>
 3 #include <iostream>
 4 #include <algorithm>
 5 using namespace std;
 6 const int maxn = 0x3f3f3f3f;
 7 typedef long long ll;
 8 struct st{
 9     char num[10],name[10];
10     int grade;
11 }s[100005];
12 bool cmp1(st p,st q) {
13     return (strcmp(p.num,q.num) < 0);
14 }
15 bool cmp2(st p,st q) {
16     if(strcmp(p.name,q.name) != 0) return (strcmp(p.name,q.name) < 0);
17     return (strcmp(p.num,q.num) < 0);
18 }
19 bool cmp3(st p,st q) {
20     if(p.grade != q.grade) return p.grade < q.grade;
21     return (strcmp(p.num,q.num) < 0);
22 }
23 int main() {
24     int n,c;
25     scanf("%d%d",&n,&c);
26     for(int i = 0; i < n; i++) {
27         scanf("%s%s%d",s[i].num,s[i].name,&s[i].grade);
28     }
29     if(c == 1) sort(s,s+n,cmp1);
30     else if(c == 2) sort(s,s+n,cmp2);
31     else if(c == 3) sort(s,s+n,cmp3);
32     for(int i = 0; i < n; i++) {
33         printf("%s %s %d\n",s[i].num,s[i].name,s[i].grade);
34     }
35     return  0;
36 }

 

PAT甲级 1028 List Sorting (25分)(cin cout 超时问题)

标签:语句   namespace   ade   turn   否则   using   clu   div   cstring   

原文地址:https://www.cnblogs.com/LLLAIH/p/12258090.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!