1028. List Sorting

#include<vector>
#include<algorithm>
#include<string>
using namespace std;
struct node{
  string st[3];
  node(char*a,char*b,char*c){st[0]=a;st[1]=b,st[2]=c;}
};
int main(){
  int n,c; char a[10],b[10],c[10];
  scanf("%d%d",&n,&c); --c;
  vector<node>stu;
  for(int i=0;i<n;++i){
    scanf("%s%s%s",a,b,c);
    stu.emplace_back(a,b,c);}
  sort(stu.begin(),stu.end(),[=](const node&x,const node&y){
      return c?(x.st[c]!=y.st[c]?x.st[c]<y.st[c]:x.st[0]<y.st[0]):x.st[c]<y.st[c];});
  for(auto&x:stu)
    for(int i=0;i<3;++i)
      printf("%s%c",x.st[i].c_str(),i==2?'\n':' ');
}

你可能感兴趣的:(1028. List Sorting)