#include <iostream> #include<string> #include<vector> //#include<set> #include<algorithm> using namespace std; /** 1. n > m 2. n < m **/ // 第三题装酒 int main(){ int m, n; vector<int> w; // n people // m shuilongtou cin >>n>>m; for(int i =0 ; i< n; i++){ int x; cin >>x ; w.push_back(x); } // whe n <=m pick the max val if(n<=m){ sort(w.begin(),w.end()); cout << *(w.end()-1)<<endl; return 0; } // pick first m vector<int> ***; for(int i =0; i< m ; i++)***.push_back(w[i]); // queue int cost =0; size_t i =m; while(i < w.size()){ sort(***.begin(), ***.end()); int tar=***[0];// smallest cost += tar; for(size_t k =0 ; k < ***.size();k++){ ***[k]-=tar; if(***[k]==0&&i<w.size())***[k]=w[i++]; //pull the new one from w. no zero } } // rest cost; sort(***.begin(),***.end()); cost+=***[m-1]; cout <<cost <<endl; return 0; } //第二题 报数踢人 int main(){ int m ; cin >>m; if(m<=1){cout<<"ERROR!"<<endl;return 0;} if(m>=100){cout<<"ERROR!"<<endl;return 0;} vector<bool> pp(100,true); int cc=100, i=0, kill=0; while(cc>=m){ kill=pp[i]?(kill+1):kill; if(kill==m){ pp[i]=false; cc--; kill=0; } i= (i+1)%100; } bool first= true; for(size_t i =0 ; i < pp.size(); i++) if(pp[i]&&first){ cout <<i+1; first= false; }else if(pp[i]){ cout <<","<<i+1; } return 0; } // 第一题最长连续数字串 int main() { string s; while(cin >>s){ size_t curr_l=0; string nums=""; string ms=""; for(size_t i =0 ; i< s.size() ; i++) { if(s[i]>='0'&&s[i]<='9') { curr_l++; nums+= s[i]; }else{ ms = curr_l>=ms.size()?nums:ms; curr_l =0; nums=""; } } ms= curr_l>=ms.size()?nums:ms; if(ms.size()!=0) cout<< ms<<endl; cout << ms.size()<<endl; } return 0; }