小表弟的竞赛题 竟然不会 汗~解决思路
小表弟的竞赛题 竟然不会 汗~
作息时间(times.bas/ times.pas/ times.c)
【问题描述】
小K告诉了小新自己一天的安排:“8:30:30去超市”、“9:10:10去朋友家”、“10:20:10去…”、…。
小新看着复杂的安排表,晕了头,因为时间太混乱了,小K没有按照时间先后告诉他。于是他需要你帮助他把这些时间按照先后顺序输出。
【输入文件】
第一行一个整数N表示有多少个时间;
之后N行,每行空格隔开3个数字,依次分别表示时,分,秒。
【输出文件】
输出有N行,按照时间先后顺序输出所有的时间,输出的时候依然是每行3个空格隔开的数字,分别表示时,分,秒。
如果有2个时间是相同的,你仍然需要输出两次。
【样例输入】
4
3 22 21
3 21 22
3 22 22
3 21 21
【样例输出】
3 21 21
3 21 22
3 22 21
3 22 22
【数据范围】
对于70%的数据 N <= 1000;
对于100%的数据 N <= 15000;
保证输入格式为正常时间表示法,即时,分,秒都在[0,59]的范围内。
文件命名:文件名:times,输入文件名 times.in 输出文件名 time.out 时间限制1s 空间 64MB
大神帮看下
------解决方案--------------------
【样例输入】
4
3 22 21
3 21 22
3 22 22
3 21 21
【样例输出】
3 21 21
3 21 22
3 22 21
3 22 22
这个不就是个排序问题吗
方法有很多 我来写个先
我写代码只考虑完成任务 我可不是大神 还考虑时间 空间
acm可以通过即可 只有搞不定的时候 我才会优化代码
------解决方案--------------------
数据范围 这个东西我没接触过
这个东西其实就是一个模子出来的
你做过一次 第二次没任何难道
还有楼上 什么叫应该用链表
我可是做过50道acm的水准 所以貌似我这方法就可以
acm竞赛规则 谁用时间最短 通过程序 加上提交出错的惩罚 排名
作息时间(times.bas/ times.pas/ times.c)
【问题描述】
小K告诉了小新自己一天的安排:“8:30:30去超市”、“9:10:10去朋友家”、“10:20:10去…”、…。
小新看着复杂的安排表,晕了头,因为时间太混乱了,小K没有按照时间先后告诉他。于是他需要你帮助他把这些时间按照先后顺序输出。
【输入文件】
第一行一个整数N表示有多少个时间;
之后N行,每行空格隔开3个数字,依次分别表示时,分,秒。
【输出文件】
输出有N行,按照时间先后顺序输出所有的时间,输出的时候依然是每行3个空格隔开的数字,分别表示时,分,秒。
如果有2个时间是相同的,你仍然需要输出两次。
【样例输入】
4
3 22 21
3 21 22
3 22 22
3 21 21
【样例输出】
3 21 21
3 21 22
3 22 21
3 22 22
【数据范围】
对于70%的数据 N <= 1000;
对于100%的数据 N <= 15000;
保证输入格式为正常时间表示法,即时,分,秒都在[0,59]的范围内。
文件命名:文件名:times,输入文件名 times.in 输出文件名 time.out 时间限制1s 空间 64MB
大神帮看下
------解决方案--------------------
【样例输入】
4
3 22 21
3 21 22
3 22 22
3 21 21
【样例输出】
3 21 21
3 21 22
3 22 21
3 22 22
这个不就是个排序问题吗
方法有很多 我来写个先
我写代码只考虑完成任务 我可不是大神 还考虑时间 空间
acm可以通过即可 只有搞不定的时候 我才会优化代码
#include <stdio.h>
#include <stdlib.h>
//【样例输入】
//4
//3 22 21
//3 21 22
//3 22 22
//3 21 21
//【样例输出】
//3 21 21
//3 21 22
//3 22 21
//3 22 22
#define MAX_SIZE 1024
struct get_time{
int Hour;
int Minute;
int Second;
};
void deal(struct get_time *elem,int size)
{
struct get_time tmp;
int i, j;
for (i = 0; i < size; i++) {
for (j = size - 1; j > i; j--) {
if (elem[j].Hour < elem[j-1].Hour
------解决方案--------------------
elem[j].Minute < elem[j-1].Minute
------解决方案--------------------
elem[j].Second < elem[j-1].Second ) {
tmp = elem[j-1];
elem[j-1] = elem[j];
elem[j] = tmp;
}
}
}
}
int main()
{
struct get_time answer[MAX_SIZE];
int i;
int num;
scanf("%d",&num);
for(i = 0 ; i < num ; i++)
{
scanf("%d %d %d",&answer[i].Hour,&answer[i].Minute,&answer[i].Second);
}
printf("\n");
deal(answer,num);
for(i = 0 ; i < num ; i++)
printf("%d %d %d\n",answer[i].Hour,answer[i].Minute,answer[i].Second);
return 0;
}
------解决方案--------------------
数据范围 这个东西我没接触过
这个东西其实就是一个模子出来的
你做过一次 第二次没任何难道
还有楼上 什么叫应该用链表
我可是做过50道acm的水准 所以貌似我这方法就可以
acm竞赛规则 谁用时间最短 通过程序 加上提交出错的惩罚 排名