看時間和內存還以為要使用到某些存儲結構方面的 內容,結果繞了一圈,最後還是用排序等簡單知識解決了。。有的時候適當樂觀也是好的。。
[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;
}