小美的跑腿代购,注意二维数组的输入,并且输出是需要从小到大排好序。
#include<bits/stdc++.h>
using namespace std;
bool compare1(vector<int> a , vector<int> b){
if(a[1] != b[1]) return a[1] >b[1];
return a[0]<b[0];
}
bool compare2(vector<int> a , vector<int> b){
return a[0]<b[0];
}
int main(){
int n , m;
cin >> n >>m ;
vector<vector<int>> mesg(n ,vector<int>(2));
int v , w;
for(int i=0 ; i<n ; i++){
cin >> v >>w;
mesg[i][0] = i+1;
mesg[i][1] = v + w*2 ;
}
sort(mesg.begin() , mesg.end() , compare1);
sort(mesg.begin() , mesg.begin()+m , compare2);
for(int i =0 ;i<m ; i++){
cout << mesg[i][0] << " ";
}
return 0;
}
小团的神秘暗号,注意字符串的输入
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin >> n;
cin.get();
string s;
//getline之前必须cin.get()
getline(cin,s);
int l=0 ,r = s.size()-1;
for(int i=0 ; i<s.size(); ++i){
if(s[i] == 'M')
{
l=i+1;
break;
}
}
for(int i=s.size()-1 ; i>0; --i){
if(s[i] == 'T')
{
r=i-1;
break;
}
}
while(l<r){
if(s[l] != 'T') l++;
if(s[r] != 'M') r--;
if(s[l] == 'T'&& s[r] == 'M')break;
}
for(int i = l+1;i<r;i++){
cout <<s[i] ;
}
return 0;
}