山东省第二届ACM省赛 The Android University ACM Team Selection Contest
2017-04-27 20:39
267 查看
简单题,
一个排序,然后记住是否应输出
#include <iostream>
#include <cmath>
#include <string.h>
#include <stdio.h>
#include <algorithm>
using namespace std;
struct node
{
char s[40];
int sex,t,p,i;
}a[10009],b[10009];
bool v[10009];
bool cmp(node a,node b)
{
if(a.t==b.t)return a.p<b.p;
else return a.t>b.t;
}
int main ()
{
int t,cnt=0;
scanf("%d",&t);
while(t--)
{
memset(v,0,sizeof(v));
int n,m;
scanf("%d%d%*c",&n,&m);
for(int i=0;i<n;i++)
{
scanf("%s%d%d%d%*c",a[i].s,&a[i].sex,&a[i].t,&a[i].p);
a[i].i=b[i].i=i;
strcpy(b[i].s,a[i].s);
b[i].sex=a[i].sex;
b[i].t=a[i].t;
b[i].p=a[i].p;
}
printf("Case %d:\n",++cnt);
if(n<=m)
{
for(int i=0;i<n;i++)
printf("%s\n",a[i].s);
puts("");
continue;
}
sort(b,b+n,cmp);
int flag=0;
for(int i=0;i<m;i++)
{
v[b[i].i]=1;
if(b[i].sex!=0)flag=1;
}
if(flag==0)
for(int i=m;i<n;i++)
{
if(b[i].sex!=0)
{
if(b[i].t>0)v[b[i].i]=1;
break;
}
}
for(int i=0;i<n;i++)
if(v[i]==1) printf("%s\n",a[i].s);
puts("");
}
return 0;
}
一个排序,然后记住是否应输出
#include <iostream>
#include <cmath>
#include <string.h>
#include <stdio.h>
#include <algorithm>
using namespace std;
struct node
{
char s[40];
int sex,t,p,i;
}a[10009],b[10009];
bool v[10009];
bool cmp(node a,node b)
{
if(a.t==b.t)return a.p<b.p;
else return a.t>b.t;
}
int main ()
{
int t,cnt=0;
scanf("%d",&t);
while(t--)
{
memset(v,0,sizeof(v));
int n,m;
scanf("%d%d%*c",&n,&m);
for(int i=0;i<n;i++)
{
scanf("%s%d%d%d%*c",a[i].s,&a[i].sex,&a[i].t,&a[i].p);
a[i].i=b[i].i=i;
strcpy(b[i].s,a[i].s);
b[i].sex=a[i].sex;
b[i].t=a[i].t;
b[i].p=a[i].p;
}
printf("Case %d:\n",++cnt);
if(n<=m)
{
for(int i=0;i<n;i++)
printf("%s\n",a[i].s);
puts("");
continue;
}
sort(b,b+n,cmp);
int flag=0;
for(int i=0;i<m;i++)
{
v[b[i].i]=1;
if(b[i].sex!=0)flag=1;
}
if(flag==0)
for(int i=m;i<n;i++)
{
if(b[i].sex!=0)
{
if(b[i].t>0)v[b[i].i]=1;
break;
}
}
for(int i=0;i<n;i++)
if(v[i]==1) printf("%s\n",a[i].s);
puts("");
}
return 0;
}
相关文章推荐
- [2011山东省第二届ACM大学生程序设计竞赛]——The Android University ACM Team Selection Contest
- 山东省第二届ACM省赛题——The Android University ACM Team Selection Contest
- 山东省第二届ACM大学生程序设计竞赛:The Android University ACM Team Selection Contest
- 山东省第二届ACM大学生程序设计竞赛 The Android University ACM Team Selection Contest
- sdut 2162:The Android University ACM Team Selection Contest(第二届山东省省赛原题,模拟题)
- SDUT 2162-The Android University ACM Team Selection Contest(模拟)
- The Android University ACM Team Selection Contest
- 2013山东省第三届ACM省赛 The Best Seat in ACM Contest
- Sdut 2409 The Best Seat in ACM Contest(山东省第三届ACM省赛 H 题)(模拟)
- Sdut 2409 The Best Seat in ACM Contest(山东省第三届ACM省赛 H 题)(模拟)
- sdut 2161 Simple Game(山东省第二届acm省赛A题)(博弈论Nim+Bush?)
- Sdut 2165 Crack Mathmen(数论)(山东省ACM第二届省赛E 题)
- 2017 Multi-University Training Contest - Team 8 Fleet of the Eternal Throne
- The Best Seat in ACM Contest--12年山东省赛(广搜)需要记录数组
- 2013山东省第四届ACM省赛 Contest Print Server
- 山东省第八届acm省赛 Return of the Nim
- sdut2165 Crack Mathmen (山东省第二届ACM省赛)
- Sdut 2165 Crack Mathmen(数论)(山东省ACM第二届省赛E 题)
- 山东省第二届ACM省赛 Identifiers
- 山东省第二届ACM省赛 Binomial Coeffcients(组合数学)