HDU 2600——War
看时间和内存还以为要使用到某些存储结构方面的 内容,结果绕了一圈,最后还是用排序等简单知识解决了。。有的时候适当乐观也是好的。。
[cpp]
#include <iostream>
#include <cstring>
#include <string>
#include <algorithm>
using namespace std;
class war
{
public:
int starttime;
int endtime;
bool vis;
};
bool cmp(war a,war b)
{
if(a.endtime!=b.endtime)
return b.endtime>a.endtime;
else
return a.starttime>b.starttime;
}
war tar[150];
int main()
{
int testcase;
while(cin>>testcase)
{
memset(tar,0,sizeof(tar));
string tmp;
int res=0;
int flag=0;
int stp,edp;
cin>>stp>>edp;
for(int i=0;i<testcase;i++)
{
cin>>tar[i].starttime>>tar[i].endtime;
getline(cin,tmp);
tar[i].vis=0;
}
sort(tar,tar+testcase,cmp);
if(tar[0].endtime<edp)
{
cout<<edp<<endl;
continue;
}
for(int i=0;i<testcase;i++)
{
if(tar[i].endtime>=res)
{
if(res>=tar[i].starttime)
res=tar[i].starttime;
}
else
{
flag=1;
break;
}
}
if(flag==1)
cout<<res-1<<endl;
else
cout<<"Badly!"<<endl;
}
return 0;
}
#include <iostream>
#include <cstring>
#include <string>
#include <algorithm>
using namespace std;
class war
{
public:
int starttime;
int endtime;
bool vis;
};
bool cmp(war a,war b)
{
if(a.endtime!=b.endtime)
return b.endtime>a.endtime;
else
return a.starttime>b.starttime;
}
war tar[150];
int main()
{
int testcase;
while(cin>>testcase)
{
memset(tar,0,sizeof(tar));
string tmp;
int res=0;
int flag=0;
int stp,edp;
cin>>stp>>edp;
for(int i=0;i<testcase;i++)
{
cin>>tar[i].starttime>>tar[i].endtime;
getline(cin,tmp);
tar[i].vis=0;
}
sort(tar,tar+testcase,cmp);
if(tar[0].endtime<edp)
{
cout<<edp<<endl;
continue;
}
for(int i=0;i<testcase;i++)
{
if(tar[i].endtime>=res)
{
if(res>=tar[i].starttime)
res=tar[i].starttime;
}
else
{
flag=1;
break;
}
}
if(flag==1)
cout<<res-1<<endl;
else
cout<<"Badly!"<<endl;
}
return 0;
}
补充:软件开发 , C++ ,