- 分数线划定
- 2016-08-03 18:32:28 @
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int main()
{
int n,k[5001],s[5001],tong[102]={0},fen=100,ren=0,temp=0,temp2[5001],temp3;
float m;
cin>>n>>m;
for (int i=1;i<=n;i++){
cin>>k[i]>>s[i];
}
for (int i=1;i<=n;i++){
tong[s[i]]++;
}
while (ren<=floor(1.5*m)){
ren+=tong[fen];
fen--;
}
fen+=1;
cout<<fen<<" "<<ren<<endl;
for (int i=100;i>=fen;i--){
if (tong[i]==1){
for (int j=1;j<=n;j++){
if (s[j]==i){
cout<<k[j]<<" "<<i<<endl;
break;
}
}
}
if (tong[i]>1){
temp=0;
for (int j=0;j<=5000;j++){
temp2[j]==0;
}
for (int j=1;j<=n;j++){
if (s[j]==i){
temp++;
temp2[temp]=k[j];
}
}
for (int j=1;j<=temp-1;j++){
for (int k=1;k<=temp-j;k++){
if (temp2[k]>temp2[k+1]){
temp3=temp2[k];
temp2[k]=temp2[k+1];
temp2[k+1]=temp3;
}
}
}
for (int j=1;j<=temp;j++){
cout<<temp2[j]<<" "<<i<<endl;
}
}
}
return 0;
}
3 条评论
-
lzoi_hmh LV 8 @ 2016-08-05 15:34:50
谢谢
-
2016-08-04 21:32:17@
我是初一的新手,请问ios::sync_with_stdio(0);是什么意思
-
2016-08-04 10:52:28@
你的代码太丑了,没仔细看。之前我也出现了你这个问题,发现是确定分数线时的下标搞错了,你检查一下吧。再贴上我的代码:
#include <iostream> #include <iomanip> #include <algorithm> using namespace std; int n,m,ans[2]; struct people { int n; short p; }man[5005]; bool cmp(struct people a,struct people b) { if(a.p>b.p)return 1; if(a.p<b.p)return 0; if(a.n<b.n)return 1; return 0; } int main() { ios::sync_with_stdio(0); cin>>n>>m; int i; for(i=0;i<n;i++) cin>>man[i].n>>man[i].p; sort(man,man+n,cmp); ans[1]=m*3/2; ans[0]=man[ans[1]-1].p; i=0; while(man[i].p>=ans[0]) i++; ans[1]=i; cout<<ans[0]<<" "<<ans[1]<<endl; for(i=0;i<ans[1];i++) cout<<man[i].n<<" "<<man[i].p<<endl; return 0; }
- 1
信息
- ID
- 1813
- 难度
- 4
- 分类
- (无)
- 标签
- 递交数
- 1558
- 已通过
- 692
- 通过率
- 44%
- 被复制
- 17
- 上传者