1062.Talent and Virtue (25)
2017-03-01 14:38
288 查看
1062.Talent and Virtue (25)
pat-al-1062
2017-03-01
乙级做过,这次又做了一遍,感觉流畅多了,并做了优化
利用state来保存等级(sage、nobleman、foolman和其他),在比较函数cmp中直接利用这个排序,就不必将四种学生分在四个数组里了
利用vector来保存
-FIN-
pat-al-1062
2017-03-01
乙级做过,这次又做了一遍,感觉流畅多了,并做了优化
利用state来保存等级(sage、nobleman、foolman和其他),在比较函数cmp中直接利用这个排序,就不必将四种学生分在四个数组里了
利用vector来保存
/** * pat-al-1062 * 2017-03-01 * Cpp version * Author: fengLian_s */ #include<stdio.h> #include<algorithm> #include<vector> #define MAX 100010 using namespace std; struct STU { int id; int virtue; int talent; int total; int state;//1是sage,2是nobleman,3是foolman,4是其他 }newStu; bool cmp(STU a, STU b) { if(a.state != b.state) return a.state < b.state; else { if(a.total != b.total) return a.total > b.total; else { if(a.virtue != b. virtue) return a.virtue > b.virtue; else return a.id < b.id; } } } int main() { freopen("in.txt", "r", stdin); int n, l, h; scanf("%d%d%d", &n, &l, &h); int id, virtue, talent, cnt = 0; vector<STU> stu; for(int i = 0;i < n;i++) { scanf("%d%d%d", &id, &virtue, & talent); if(virtue >= l && talent >= l) { cnt++; newStu.id = id; newStu.virtue = virtue; newStu.talent = talent; newStu.total = virtue + talent; } else continue; if(virtue >= h && talent >= h) newStu.state = 1; else if(virtue >=h && talent < h) newStu.state = 2; else if(virtue < h && talent < h && virtue >= talent) newStu.state = 3; else newStu.state = 4; stu.push_back(newStu); //printf("%08d %d\n", newStu.id, newStu.state); } sort(stu.begin(), stu.end(), cmp); // printf("%08d %d %d %d\n", stu[0].id, stu[0].virtue, stu[0].talent, stu[0].state); // for(int i = 1;i < cnt;i++) // { // printf("%08d %d %d %d\n", stu[i].id, stu[i].virtue, stu[i].talent, stu[i].state); // } if(cnt != 0) printf("%d\n", cnt); else { printf("0\n"); return 0; } printf("%08d %d %d\n", stu[0].id, stu[0].virtue, stu[0].talent); for(int i = 1;i < cnt;i++) { printf("%08d %d %d\n", stu[i].id, stu[i].virtue, stu[i].talent); } return 0; }
-FIN-
相关文章推荐
- 1062. Talent and Virtue (25)
- 1062 Talent and Virtue (25)
- 1062. Talent and Virtue (25)
- PAT 1062. Talent and Virtue (25) sort应用
- PAT-A 1062. Talent and Virtue (25)
- 1062. Talent and Virtue (25)
- 1062. Talent and Virtue (25)
- pat 1062. Talent and Virtue (25)
- PAT 1062. Talent and Virtue (25)
- PAT (Advanced Level) Practise 1062 Talent and Virtue (25)
- PAT(甲级)1062. Talent and Virtue (25)
- 1062. Talent and Virtue (25)
- 1062. Talent and Virtue (25)
- PAT_B_1015. 德才论 (25) or PAT_A_1062. Talent and Virtue (25)
- PAT (Advanced Level) Practise 1062 Talent and Virtue (25)
- PAT A 1062. Talent and Virtue (25)
- PAT - 甲级 - 1062. Talent and Virtue (25)(排序)
- 1062. Talent and Virtue (25)
- 1062. Talent and Virtue (25)
- PAT 1062. Talent and Virtue (25)