| ||||||||||
| 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<iostream>
using namespace std;
int num,k;
struct command{
int q_num;
int period;
int nextime;
}query[1001];
void copy(int s,int j){
query[s].nextime=query[j].nextime;
query[s].period=query[j].period;
query[s].q_num=query[j].q_num;
}
int compare(int i,int j){
if(query[i].nextime<query[j].nextime)
return -1;
if(query[i].nextime>query[j].nextime)
return 1;
if(query[i].q_num<query[j].period)
return -1;
if(query[i].q_num>query[j].q_num)
return 1;
return 0;
}
void HeapAdjust(int s){
int j;
copy(0,s);
for(j=s*s;j<=num;j*=2){
if(j<num&&compare(j,j+1)>0)
++j;
if(compare(0,j)<=0)
break;
copy(s,j);
s=j;
}
copy(s,0);
}
int HeapSort(){
int left,right;
for(left=num/2;left>=1;left--)
HeapAdjust(left);
for(right=1;right<=k;right++)
{
printf("%d\n",query[1].q_num);
query[1].nextime+=query[1].period;
HeapAdjust(1);
}
return 0;
}
int main(){
int i,j,q_num,period;
char c[9];
//freopen("test.txt","r",stdin);
i=1;
cin>>c;
while(strcmp(c,"#")){
cin>>q_num>>period;
query[i].nextime=period;
query[i].period=period;
query[i].q_num=q_num;
i++;
cin>>c;
}
num=i-1;
cin>>k;
HeapSort();
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator