| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:为什么 总是提示Rumtime Error? 楼主数据和补充数据都过了In Reply To:Re:大家帮我看看 为什么 总是提示Rumtime Error? Posted by:648892238 at 2017-05-24 12:14:48
#include <iostream>
#include <algorithm>
#include <math.h>
#include <list>
using namespace std;
typedef struct section{
double left;
double right;
}Section;
int n,d;
int cmp(Section a,Section b){
if (a.right<b.right) {
return 1;
}
return 0;
}
int main(int argc, const char * argv[]) {
int cou = 0;
while (1) {
cin>>n>>d;
if (n==0&&d==0) {
break;
}
cou++;
list<Section> t;
double a,b;
int ok = 1;
for(int i=0;i<n;i++){
cin>>a>>b;
if (d<0) {
ok = 0;
continue;
}
double l = d*d-b*b;
if (l<0) {
ok = 0;
continue;
}else{
l = sqrt(l);
Section item;
item.left = a-l;
item.right = a+l;
t.push_back(item);
}
}
if (ok==0) {
cout<<"Case "<<cou<<": -1"<<endl;
continue;
}
if (n==0) {
cout<<"Case "<<cou<<": 0"<<endl;
continue;
}
int min = 1;
t.sort(cmp);
int R = t.front().right;
t.erase(t.begin());
while (!t.empty()) {
for (list<Section>::iterator it = t.begin(); it!=t.end(); it++) {
if ((*it).left<=R) {
t.erase(it);
}
}
if (!t.empty()) {
min++;
R=t.front().right;
t.erase(t.begin());
}
}
cout<<"Case "<<cou<<": "<<min<<endl;
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator