标签:
艾斯姆作为长官,研究一份士兵体检表,发现队伍中竟然每个人的体重都不一样。他想根据体重从小到大对士兵排序, 然后直接可以知道每个人在队伍中的体重排位。
第1行输入整数n, 表示士兵人数,随后n行是每个士兵的编号(1,2,...n)和体重。紧跟的下一行是一个整数k (1<=k<=n), 表示要提问排第k位的士兵信息。
排第k位的士兵编号和体重,之间空一格。
3 1 168 2 156 3 178 2
1 168
//艾斯姆之士兵 #include<iostream> #include<vector> #include<algorithm> using namespace std; int main() { vector<int> v1,v2; int n,c,t; cin>>n; while(n--) { cin>>c>>t; v1.push_back(t); } v2=v1; sort(v1.begin(),v1.end()); //排序后 vector<int>::iterator it; int i=1,k; cin>>k; for(it=v2.begin(); it!=v2.end(); it++,i++) if(*it==v1[k-1]) { cout<<i; break; } cout<<" "<<v1[k-1]<<endl; return 0; }
艾斯姆来到一个自动售酒机前。他发现这个售酒机功能很强大,投入2美元硬币,它可以吐出1瓶啤酒。 如果投入2个空瓶,或者是4个瓶盖,它也可以吐出一瓶啤酒。现艾斯姆身上有m美元,他想知道最多能喝到多少瓶的啤酒?
美元数m
可以喝的啤酒数
例1输入: 1 例2输入: 2 例3输入: 4
例1输出 0 例2输出: 1 例3输出: 3
//艾斯姆之啤酒 #include<iostream> using namespace std; int fun(int p, int g) { if(p/2==0 && g/4==0) return 0; return p/2+g/4+fun(p/2+g/4+p%2,p/2+g/4+g%4); } int main() { int m; cin>>m; int t=fun(m/2,m/2); cout<<m/2+t<<endl; return 0; }
标签:
原文地址:http://www.cnblogs.com/fengyanlover/p/5068034.html