C++ 1015德才論(25 分)
阿新 • • 發佈:2019-01-27
#include<vector> //vector #include<algorithm> //sort #include<iostream> //bool cin cout size() using namespace std; struct stu{ // 通過結構體建立自己的資料型別 int id,d,c; }; //return a>b 表示降序,return a<b表示升序 bool cmp(stu a,stu b){ if(a.d+a.c!=b.d+b.c) return a.d+a.c>b.d+b.c; else if(a.d!=b.d) return a.d>b.d; else return a.id<b.id; } int main(){ int N,L,H,i,count=0; cin>>N>>L>>H; stu tmp;vector <stu> vec1,vec2,vec3,vec4; while(N--){ cin>>tmp.id>>tmp.d>>tmp.c; //cin 不能以endl結尾 if(tmp.d>=L&&tmp.c>=L){ count++; if(tmp.d>=H && tmp.c>=H){ vec1.push_back(tmp); }else if(tmp.d>=H && tmp.c<H){ vec2.push_back(tmp); }else if(tmp.d<H && tmp.c<H && tmp.d>=tmp.c){ vec3.push_back(tmp); }else{ vec4.push_back(tmp); } } } cout<<count<<endl; sort(vec1.begin(),vec1.end(),cmp); sort(vec2.begin(),vec2.end(),cmp); sort(vec3.begin(),vec3.end(),cmp); sort(vec4.begin(),vec4.end(),cmp); for(i=0;i<vec1.size();i++) printf("%d %d %d\n",vec1[i].id, vec1[i].d, vec1[i].c); //儘量用scanf和printf,用cin和cout有時會超時 //cout<<vec1[i].id<<" "<<vec1[i].d<<" "<<vec1[i].c<<endl; for(i=0;i<vec2.size();i++) printf("%d %d %d\n",vec2[i].id, vec2[i].d, vec2[i].c); //cout<<vec2[i].id<<" "<<vec2[i].d<<" "<<vec2[i].c<<endl; for(i=0;i<vec3.size();i++) printf("%d %d %d\n",vec3[i].id, vec3[i].d, vec3[i].c); //cout<<vec3[i].id<<" "<<vec3[i].d<<" "<<vec3[i].c<<endl; for(i=0;i<vec4.size();i++) printf("%d %d %d\n",vec4[i].id, vec4[i].d, vec4[i].c); //cout<<vec4[i].id<<" "<<vec4[i].d<<" "<<vec4[i].c<<endl; return 0; }