HDU 2600――War

2014-11-24 02:27:54 · 作者: · 浏览: 2

看时间和内存还以为要使用到某些存储结构方面的 内容,结果绕了一圈,最后还是用排序等简单知识解决了。。有的时候适当乐观也是好的。。


[cpp]
#include
#include
#include
#include
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 {
cin>>tar[i].starttime>>tar[i].endtime;
getline(cin,tmp);
tar[i].vis=0;
}
sort(tar,tar+testcase,cmp);
if(tar[0].endtime {
cout< continue;
}
for(int i=0;i {
if(tar[i].endtime>=res)
{
if(res>=tar[i].starttime)
res=tar[i].starttime;
}
else
{
flag=1;
break;
}
}
if(flag==1)
cout< else
cout<<"Badly!"<

}
return 0;
}

#include
#include
#include
#include
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 {
cin>>tar[i].starttime>>tar[i].endtime;
getline(cin,tmp);
tar[i].vis=0;
}
sort(tar,tar+testcase,cmp);
if(tar[0].endtime {
cout< continue;
}
for(int i=0;i {
if(tar[i].endtime>=res)
{
if(res>=tar[i].starttime)
res=tar[i].starttime;
}
else
{
flag=1;
break;
}
}
if(flag==1)
cout< else
cout<<"Badly!"<

}
return 0;
}