1015. 德才论 (25)
2018-03-02 17:04
148 查看
vector,sort以及函数重载的使用
#include<vector>
#include<cstdio>
#include<algorithm>
using namespace std;
struct node{
int num,de,cai;
};
int cmp(node a,node b)
{
if((a.de+a.cai)!=(b.de+b.cai))
return (a.de+a.cai)>(b.de+b.cai);
else if(a.de!=b.de)
return a.de>b.de;
else
return a.num<b.num;
}
int main()
{
int n,low,high;
int i,j;
//freopen("1015.txt","r",stdin);
scanf("%d %d %d",&n,&low,&high);
vector<node> v[4];
node temp;
int total=n;
for(i=0;i<n;i++)
{
//cout<<"here"<<endl;
scanf("%d %d %d",&temp.num,&temp.de,&temp.cai);
if(temp.de<low||temp.cai<low)
total--;
else if(temp.de>=high&&temp.cai>=high)
v[0].push_back(temp);
else if(temp.de>=high&&temp.cai<high)
v[1].push_back(temp);
else if(temp.de<high&&temp.cai<high&&temp.de>=temp.cai)
v[2].push_back(temp);
else
v[3].push_back(temp);
}
printf("%d\n",total);
for(i=0;i<4;i++)
{
sort(v[i].begin(),v[i].end(),cmp);
for(j=0;j<v[i].size();j++)
printf("%d %d %d\n",v[i][j].num,v[i][j].de,v[i][j].cai);
}
}
#include<cstdio> #include<algorithm> #include<vector> using namespace std; struct node{ int num,s1,s2; friend bool operator <(node a,node b) { if((a.s1+a.s2)!=(b.s1+b.s2)) return (a.s1+a.s2)>(b.s1+b.s2); else if(a.s1!=b.s1) return a.s1>b.s1; else return a.num<b.num; } }; int main() { int N,L,H,cnt=0; //freopen("1015.txt","r",stdin); scanf("%d %d %d",&N,&L,&H); vector<node> v1,v2,v3,v4; node p; for(int i=0;i<N;i++) { scanf("%d %d %d\n",&p.num,&p.s1,&p.s2); if(p.s1>=L&&p.s2>=L) { cnt++; if(p.s1>=H&&p.s2>=H) v1.push_back(p); else if(p.s1>=H&&p.s2<H) v2.push_back(p); else if(p.s1<H&&p.s2<H&&p.s1>=p.s2) v3.push_back(p); else v4.push_back(p); } } printf("%d\n",cnt); sort(v1.begin(),v1.end()); sort(v2.begin(),v2.end()); sort(v3.begin(),v3.end()); sort(v4.begin(),v4.end()); for(int i=0;i<v1.size();i++) printf("%d %d %d\n",v1[i].num,v1[i].s1,v1[i].s2); for(int i=0;i<v2.size();i++) printf("%d %d %d\n",v2[i].num,v2[i].s1,v2[i].s2); for(int i=0;i<v3.size();i++) printf("%d %d %d\n",v3[i].num,v3[i].s1,v3[i].s2); for(int i=0;i<v4.size();i++) printf("%d %d %d\n",v4[i].num,v4[i].s1,v4[i].s2); return 0; }柳的代码,简化代码#include<iostream>
#include<vector>
#include<cstdio>
#include<algorithm>
using namespace std;
struct node{
int num,de,cai;
};
int cmp(node a,node b)
{
if((a.de+a.cai)!=(b.de+b.cai))
return (a.de+a.cai)>(b.de+b.cai);
else if(a.de!=b.de)
return a.de>b.de;
else
return a.num<b.num;
}
int main()
{
int n,low,high;
int i,j;
//freopen("1015.txt","r",stdin);
scanf("%d %d %d",&n,&low,&high);
vector<node> v[4];
node temp;
int total=n;
for(i=0;i<n;i++)
{
//cout<<"here"<<endl;
scanf("%d %d %d",&temp.num,&temp.de,&temp.cai);
if(temp.de<low||temp.cai<low)
total--;
else if(temp.de>=high&&temp.cai>=high)
v[0].push_back(temp);
else if(temp.de>=high&&temp.cai<high)
v[1].push_back(temp);
else if(temp.de<high&&temp.cai<high&&temp.de>=temp.cai)
v[2].push_back(temp);
else
v[3].push_back(temp);
}
printf("%d\n",total);
for(i=0;i<4;i++)
{
sort(v[i].begin(),v[i].end(),cmp);
for(j=0;j<v[i].size();j++)
printf("%d %d %d\n",v[i][j].num,v[i][j].de,v[i][j].cai);
}
}
相关文章推荐
- 1015. 德才论 (25)
- 1015. 德才论 (25)
- 1015. 德才论 (25)
- 1015. 德才论 (25)
- 1015. 德才论 (25) PAT乙级真题
- 1015. 德才论 (25)
- 1015. 德才论 (25)
- 1015. 德才论 (25)
- 1015. 德才论 (25)
- PAT(B) - 1015. 德才论 (25)
- 1015. 德才论 (25)
- B1015. 德才论 (25)
- PAT : 1015. 德才论 (25)
- 1015. 德才论 (25)--PAT乙级
- 浙江大学PAT乙级试题.1015. 德才论 (25)C语言
- PAT(B)1015. 德才论 (25)
- PAT(乙) 1015. 德才论 (25)
- PAT (Basic Level) Practise (中文)- 1015. 德才论 (25)
- 1015. 德才论 (25)
- 1015. 德才论 (25)