Vote
Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 5904 Accepted Submission(s): 3124
每组数据的第一行包括一个整数N(1<=N<=101),表示美国的州数,N=0表示输入结束
接下来一行包括N个正整数,分别表示每个州的选民数,每个州的选民数不超过100
#include<stdio.h>
#include<iostream>
#include<algorithm>
using namespace std;
int a[150]= {0};
int main()
{
int n;
while(cin>>n&&n)
{
int k,t;
for(int i=1; i<=n; i++)
scanf("%d",&a[i]);
for(int i=1; i<n; i++)
{
k=i;
for(int j=i; j<=n; j++)
{
if(a[k]>a[j])
k=j;
}
t=a[k];
a[k]=a[i];
a[i]=t;
}
//sort(a,a+n);
int sum=0;
for(int i=1; i<=n/2+1; i++)
{
sum=a[i]/2+1 + sum;
}
printf("%d\n",sum);
}
return 0;
}
当然 也可以用sort排序代替选择排序:
#include<stdio.h>
#include<iostream>
#include<algorithm>
using namespace std;
int a[150]= {0};
int main()
{
int n;
while(cin>>n&&n)
{
int k,t;
for(int i=0; i<n; i++)
scanf("%d",&a[i]);
/*for(int i=1; i<n; i++)
{
k=i;
for(int j=i; j<=n; j++)
{
if(a[k]>a[j])
k=j;
}
t=a[k];
a[k]=a[i];
a[i]=t;
}*/
sort(a,a+n);
int sum=0;
for(int i=0; i<n/2+1; i++)
{
sum=a[i]/2+1 + sum;
}
printf("%d\n",sum);
}
return 0;
}