| ||||||||||
| 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 | |||||||||
这题需要注意什么,怎么总是WA?帮忙看一看吧!
#include<stdio.h>
#include<stdlib.h>
#define MAXN 10010
int A[MAXN],R[10000][2];
bool BinarySearch(int x,int N,int l)
{
int p, q, i, L;
p = 0; /* Left border of the search */
q = N-1; /* Right border of the search */
L = 0; /* Comparison counter */
while (p <= q) {
i = (p + q) / 2;
++L;
if(A[i]==x)break;
if (x < A[i])
q = i - 1;
else
p = i + 1;
}
if(p<=q){
if(L==l)return true;
else return false;
}
else{
++L;
if(L==l&&A[N-1]==x)return true;
else return false;
}
}
int main(){
int n,l,i,k=0;
for(i=0;i<MAXN;i++)A[i]=i;
scanf("%d%d",&n,&l);
for(i=1;i<=10000;i++){
if(BinarySearch(n,i,l)){
k++;
R[k][0]=i;
while(BinarySearch(n,i,l))i++;
R[k][1]=i-1;
}
}
if(!k)printf("0\n");
else{
printf("%d\n",k);
for(i=1;i<=k;i++)printf("%d %d\n",R[i][0],R[i][1]);
}
system("pause");
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator