用小号做的div2

 

A:竟然看错了排序顺序。。。白白WA了两发

注意读入一整行(包括空格):getline(cin,st)    【gets也是资瓷的

 1 #include<iostream>
 2 using namespace std;
 3 string s[1000];
 4 int d[1000];
 5 int T,N;
 6 
 7 void qsort(int l,int r)
 8 {
 9     int i=l,j=r;
10     int m=(l+r)/2;
11     int mid=d[m];
12     while(i<j)
13     {
14         while(d[i]<mid)    i++;
15         while(d[j]>mid)    j--;
16         if(i<=j)
17         {
18             int tmp=d[i];
19             d[i]=d[j];
20             d[j]=tmp;
21             string ts=s[i];
22             s[i]=s[j];
23             s[j]=ts;
24             i++;
25             j--;
26         }
27     }
28     if(l<j)    qsort(l,j);
29     if(i<r)    qsort(i,r);
30 }
31 
32 int main()
33 {
34     string st;
35     cin>>T;
36     while(T--)
37     {
38         cin>>N;  
39         for(int i=0;i<=N;i++)
40         {
41             getline(cin,st);
42             //cin>>s[i]>>d[i];
43             int tl=st.length();
44             int la=st[tl-1]-'0';
45             int lb=st[tl-2]-'0';
46             int lc=st[tl-3]-'0';
47             int ld=st[tl-4]-'0';
48             d[i]=ld*1000+lc*100+lb*10+la;
49             //cout<<i<<" "<<d[i]<<endl;
50             s[i]=st;
51         }
52 
53         qsort(1,N);
54         for(int i=N;i>=1;i--)
55         {
56             //cout<<s[i]<<endl;
57             int tl=s[i].length();
58             string tms=s[i];
59             for(int j=0;j<=tl-6;j++)
60                 cout<<tms[j];
61             cout<<endl;
62         }
63     }
64 }
View Code

相关文章: