A. Twins
传送门
题目描述:
一组数字,分两份,要求取最少数量数字的情况下拿到的价值最大;
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,a[120],sum=0;
scanf("%d",&n);
for(int i=1;i<=n;i++){
cin>>a[i];
sum=sum+a[i];
}
sort(a+1,a+n+1);
int s=0,ans=0;
for(int i=n;i>=0;i--){
sum-=a[i];
s+=a[i];
ans++;
if(s>sum) break;
}
cout<<ans;
return 0;
}
520A - Pangram
传送门
题目描述:一个字符串,查找是否能够有字母表(大小写满足即可。小写A的ASII码是17 +32 a是 49)
#include<iostream>
using namespace std;
bool f[30];
int main(){
int n;
string str;
cin>>n;
cin>>str;
int len = str.length();
for(int i=0;i<len;i++){
if(str[i]>='A'&&str[i]<='Z') str[i]+=32;
}
for(int i=0;i<len;i++) {
f[str[i] - '0'] = true;
}
for(int i=49;i<=74;i++){
if(f[i]== false){
cout<<"NO";
return 0;
}
}
cout<<"YES";
// cout<<'a'-'0'<<endl;//49
// cout<<'z'-'0'<<endl;//74
// cout<<'A'-'0'<<endl;//17
// cout<<'Z'-'0'<<endl;//42
return 0;
}
A. Even Odds
传送门
题目描述:
n个数字,先奇数拆分,再偶数拆分。例如,7
1 3 5 7 2 4 6;第k个数字是多少
#include<bits/stdc++.h>
#define int long long
using namespace std;
int ans;
signed main()
{
int n,k;
scanf("%lld %lld",&n,&k);
if(n%2==0){ //偶数
if(k<=n/2){
ans=2*k-1;
}
else if(k>n/2){
k=k-n/2;
ans=2*k;
}
}
else if(n%2!=0) { //奇数
if(k<=n/2+1){
ans=2*k-1;
}
else if(k>n/2){
k=k-n/2-1;
ans=2*k;
}
}
cout<<ans;
return 0;
}
50A - Domino piling
传送门
问题描述:
M * N个单位草坪,最多能容纳多少个2 * 1方块(不能折叠)
// 这个题目一开始没有做出来,真是傻逼了;就是面积除面积呗!
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,m;
cin>>m>>n;
cout<<(m*n/2);
return 0;
}
118A - String Task
传送门
字符串操作,
大写变小写,aeiouy删除,剩下的字母前面加.输出就可以了。
//str.erase();的应用,str.erase(it)
//it是迭代器的位置。
//str.erase(pos,n);删除从pos位置开始的n个字母
#include<bits/stdc++.h>
using namespace std;
int main(){
string str;
getline(cin,str);
int len = str.length();
for(int i=0;i<len;i++){
if(str[i]>='A'&&str[i]<='Z')
str[i]+=32;
}
string::iterator it;
for(int i=0;i<len;i++){
if(str[i]=='a'||str[i]=='e'||str[i]=='i'||str[i]=='o'||str[i]=='u'||str[i]=='y'){
it = str.begin() + i;
str.erase(it);
i--;
}
}
int len2=str.length();
for(int i=0;i<len2;i++){
cout<<"."<<str[i];
}
return 0;
}
158A - Next Round
传送门
问题描述:一组成绩,录取第x个人的成绩,但是第x+1个人的成绩也可能和第x同分,问,一共要录取多少人(0分不录取)
#include<bits/stdc++.h>
using namespace std;
int a[100];
bool cmp(int a,int b){
return a>b;
}
int main(){
int n,k;
cin>>n>>k;
for(int i=0;i<n;i++){
cin>>a[i];
}
sort(a,a+n,cmp);
int sorce = a[k-1],ans=0;
for(int i=0;i<n;i++){
if(a[i]>=sorce&&a[i]>0)
ans++;
}
cout<<ans;
return 0;
}