| ||||||||||
| 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 | |||||||||
求解释,求数据,求指导。。。#include<iostream>
#include <algorithm>
using namespace std;
int score[100000],aid1[100000],aid2[100000],aid3[100000]={0},aid4[100000]={0};
int main(void)
{
int j,i,n1, n,c,f,f1,j1,k,h1;
int sum=0;
cin >> n>>c >>f;
f1=f;n1=n;
for( i = 0;i<c;i++)
{
cin >>score[i]>>aid1[i];
aid2[i]= aid1[i];
}
sort(aid1,aid1+c);
for(k = 0;k<n;k++)
sum = sum+aid1[k];
if(sum>f)
cout<<-1;
else
{
f = f/n;
for(i = 0;i<c;i++)
if(f<aid1[i])
break;
i = i-1;
n = n/2;
sum = aid1[i];
aid3[i]=sum;
for( j1 = 1;j1<=n;j1++)
{
if(i-j1>=0){
sum = sum+aid1[i-j1];
aid3[i-j1]=aid1[i-1];
}
if(c-j1>i){
sum = sum+aid1[c-j1];
aid3[c-j1]=aid1[c-j1];
}
}
while(1)
{
if(sum > f1){
sum = sum - aid1[i-j1+1]+aid1[i-j1];
aid3[i-j1+1]=aid1[i-j1];
j1--;
}
else if(j1==-1&&sum>f){
sum =0;
for(k = 0;k<c;k++){
aid3[k]=0;
}
for(k = 0;k<n1;k++){
aid3[k]=aid1[i-k];
sum = sum+aid3[k];
}
break;
}
else
break;
}
int m = 0;
for( k = 0;k<c;k++)
for(int h= 0;h<c;h++)
{
if( aid3[k]!= 0 && aid3[k]==aid2[h]){
aid4[m]=score[h];
aid2[h]=0;
m++;
break;
}
}
sort(aid4,aid4+n1);
cout<<aid4[n1/2]<<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