64,647
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#define MAX 10000
using namespace std;
string str[MAX];
class Person{
public:
string id;
string sign_in;
string sign_out;
};
vector<Person> x, y;
Person per[MAX];
int compare(Person a, Person b);
int compare2(Person a, Person b);
int main(){
int M;
cin >> M;
getchar();
for (int i = 0; i < M; i++){
getline(cin, str[i]);
char temp = str[i].at(0);
while (temp != ' '){
per[i].id.insert(per[i].id.end(),1,temp);
str[i].erase(0, 1);
temp = str[i].at(0);
}
str[i].erase(0, 1);
temp = str[i].at(0);
while (temp != ' '){
per[i].sign_in.insert(per[i].sign_in.end(), 1, temp);
str[i].erase(0, 1);
temp = str[i].at(0);
}
str[i].erase(0, 1);
temp = str[i].at(0);
while (str[i].size()>0){
per[i].sign_out.insert(per[i].sign_out.end(), 1, temp);
str[i].erase(0, 1);
if (str[i].size()>0)
temp = str[i].at(0); //可能为空
}
x.insert(x.end(), per[i]);
y.insert(y.end(), per[i]);
}
//读入字符串
sort(x.begin(), x.end(), compare);
sort(y.begin(), y.end(), compare2);
cout << x.begin()->id << " " << y.end()->id;
system("pause");
return 0;
}
int compare(Person a, Person b){
for (int i = 0; i < 8;i++)
if (i != 3 && i != 6 && a.sign_in.at(i)>b.sign_in.at(i))
return 1;
return 0;
}
int compare2(Person a, Person b){
for (int i = 0; i < 8; i++)
if (i != 3 && i != 6 && a.sign_out.at(i)>b.sign_out.at(i))
return 1;
return 0;
}
//临时修改!!
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#define MAX 10000
using namespace std;
string str[MAX];
class Person{
public:
string id;
string sign_in;
string sign_out;
};
class TimeData{
private:
int m_nHour;
int m_nMinute;
int m_nSecond;
public:
TimeData(const string& str)
{
sscanf_s(str.c_str(),"%02d:%02d:%02d",&m_nHour,&m_nMinute,&m_nSecond);
}
int compareValue(const TimeData& data)
{
if(m_nHour > data.m_nHour) { return 0; } else { return 1; }
if(m_nMinute > data.m_nMinute) { return 0; } else { return 1; }
if(m_nSecond > data.m_nSecond) { return 0; } else { return 1; }
return 0;
}
};
vector<Person> x, y;
Person per[MAX];
int compare(Person a, Person b);
int compare2(Person a, Person b);
int main(){
int M;
cin >> M;
getchar();
for (int i = 0; i < M; i++){
getline(cin, str[i]);
char temp = str[i].at(0);
while (temp != ' '){
per[i].id.insert(per[i].id.end(),1,temp);
str[i].erase(0, 1);
temp = str[i].at(0);
}
str[i].erase(0, 1);
temp = str[i].at(0);
while (temp != ' '){
per[i].sign_in.insert(per[i].sign_in.end(), 1, temp);
str[i].erase(0, 1);
temp = str[i].at(0);
}
str[i].erase(0, 1);
temp = str[i].at(0);
while (str[i].size()>0){
per[i].sign_out.insert(per[i].sign_out.end(), 1, temp);
str[i].erase(0, 1);
if (str[i].size()>0)
temp = str[i].at(0); //可能为空
}
x.insert(x.end(), per[i]);
y.insert(y.end(), per[i]);
}
sort(x.begin(), x.end(), compare);
sort(y.begin(), y.end(), compare2);
//outut min and max value
cout << x.at(0).id << " " << y.at(y.size()-1).id;
system("pause");
return 0;
}
int compare(Person a, Person b){
TimeData time1(a.sign_in);
TimeData time2(b.sign_in);
return time1.compareValue(time2);
}
int compare2(Person a, Person b){
TimeData time1(a.sign_out);
TimeData time2(b.sign_out);
return time1.compareValue(time2);
}