地球历公元 6036 年,全宇宙准备竞选一个最贤能的人当总统,共有 n 个非凡拔尖的人竞选总统,现在票数已经统计完毕,请你算出谁能够当上总统。
第一行为一个整数 n,代表竞选总统的人数。
接下来有 n 行,分别为第一个候选人到第 n 个候选人的票数。
共两行,第一行是一个整数 m,为当上总统的人的号数。
第二行是当上总统的人的选票。
输入
5
98765
12365
87954
1022356
985678
输出
4
1022356
#include
#include
using namespace std;
string s,maxs;
int main(){int n,pos=0;cin>>n;for(int i=1; i<=n; i++){ cin>>s;if(s.size()>maxs.size() || s.size()== maxs.size() && s>maxs){maxs=s;pos=i;}}cout<
Farmer John最近为奶牛们的图书馆添置了一个巨大的书架,尽管它是如此的大,但它还是几乎瞬间就被各种各样的书塞满了。现在,只有书架的顶上还留有一点空间。
所有 N(1≤N≤20,000)N(1 \le N \le 20,000)N(1≤N≤20,000) 头奶牛都有一个确定的身高 Hi(1≤Hi≤10,000)H_i(1 \le H_i \le 10,000)Hi(1≤Hi≤10,000)。设所有奶牛身高的和为S。书架的高度为B,并且保证 1≤B≤S<2,000,000,0071 \le B \le S < 2,000,000,0071≤B≤S<2,000,000,007 。
为了够到比最高的那头奶牛还要高的书架顶,奶牛们不得不像演杂技一般,一头站在另一头的背上,叠成一座“奶牛塔”。当然,这个塔的高度,就是塔中所有奶牛的身高之和。为了往书架顶上放东西,所有奶牛的身高和必须不小于书架的高度。
显然,塔中的奶牛数目越多,整座塔就越不稳定,于是奶牛们希望在能够到书架顶的前提下,让塔中奶牛的数目尽量少。 现在,奶牛们找到了你,希望你帮她们计算这个最小的数目。
第 1 行: 2 个用空格隔开的整数:N 和 B;
第 2…N+12\dots N+12…N+1 行: 第 i+1i+1i+1 行是 1 个整数:HiH_iHi。
第 1 行: 输出 1 个整数,即最少要多少头奶牛叠成塔,才能够到书架顶部
输入
6 40
6
18
11
13
19
11
输出
3
#include
#include
using namespace std;
int a[20010];
int i,j,temp,suma;
void msort(int n) //冒泡排序
{for(i=1; ibool flag=true;for(j=1; j<=n-i; j++){if(a[j]temp=a[j],a[j]=a[j+1],a[j+1]=temp;flag=false;}}if(flag) break;}
}int main(){int n,b;cin>>n>>b;for(i=1; i<=n; i++){ cin>>a[i];}msort(n); //排序 for(i=1; i<=n; i++){ suma+=a[i];if(suma>=b) break;}cout<
在一个旧式的火车站旁边有一座桥,其桥面可以绕河中心的桥墩水平旋转。一个车站的职工发现桥的长度最多能容纳两节车厢,如果将桥旋转 180 度,则可以把相邻两节车厢的位置交换,用这种方法可以重新排列车厢的顺序。于是他就负责用这座桥将进站的车厢按车厢号从小到大排列。他退休后,火车站决定将这一工作自动化,其中一项重要的工作是编一个程序,输入初始的车厢顺序,计算最少用多少步就能将车厢排序。
共两行。
第一行是车厢总数 N(≤10000)N( \le 10000)N(≤10000)。
第二行是 N 个不同的数表示初始的车厢顺序。
一个整数,最少的旋转次数。
输入
4
4 3 2 1
输出
6
#include
#include
using namespace std;
int a[20010];
int i,j,temp,cnt=0;
int msort(int n) //冒泡排序 ,并记录交换次数
{for(i=1; ibool flag=true;for(j=1; j<=n-i; j++){if(a[j]>a[j+1]){temp=a[j],a[j]=a[j+1],a[j+1]=temp;cnt+=1;flag=false;}}if(flag) break;}return cnt;//cout<int n;cin>>n;for(i=1; i<=n; i++){ cin>>a[i];}cout<
一个 n 个元素的整数数组,如果数组两个连续元素之间差的绝对值包括了 [1,n−1][1,n-1][1,n−1] 之间的所有整数,则称之符合“欢乐的跳”,如数组 {1,4,2,3}\{1,4,2,3\}{1,4,2,3} 符合“欢乐的跳”,因为差的绝对值分别为:3,2,13,2,13,2,1。
给定一个数组,你的任务是判断该数组是否符合“欢乐的跳”。
每组测试数据第一行以一个整数 n(1≤n≤1000)n(1 \le n \le 1000)n(1≤n≤1000) 开始,接下来 n 个空格隔开的在 [−108,108][-10^8,10^8][−108,108] 之间的整数。
对于每组测试数据,输出一行若该数组符合“欢乐的跳”则输出 Jolly,否则输出 Not jolly。
输入
4 1 4 2 3
输出
Jolly
#include
#include
using namespace std;
int a[1010];
bool b[1010]; //a为原数组,b记录相邻这个元素之差
int i,j;int main(){int n;cin>>n;for(i=1; i<=n; i++){ //输入 cin>>a[i];}for(i=1; i //记录两数之差 有可能大于数组范围,造成下标越界 int pos=abs(a[i]-a[i+1]);if(pos>=1 && pos //在范围内,并且还未出现过 b[pos]=1;}else{cout<<"Not jolly";return 0; } } cout<<"Jolly";return 0;
}