pat乙级1076-1080

//1
#include<bits/stdc++.h>
using namespace std;
int main() {
string s;
cin >> s;
while (cin >> s) {
if (s[2] == 'T')
printf("%d", s[0] - 'A' + 1);
}
return 0;
}
//2
#include<bits/stdc++.h>
using namespace std;
int main(){
int m,n;
scanf("%d%d",&n,&m);
int a[n]; //老师给的分数
int b[n],c[n],d[n];
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
d[i]=0;
for(int j=0;j<n-1;j++)
scanf("%d",&b[j]);
int t=0;
for(int j=0;j<n-1;j++){
if(b[j]>=0&&b[j]<=m)
c[t++]=b[j];
}
sort(c,c+t);
for(int k=1;k<t-1;k++)
d[i]+=c[k];
d[i]=d[i]/(t-2);
d[i]=(d[i]+a[i]+1)/2;
printf("%d\n",d[i]);
}
return 0;
}
//3
#include<bits/stdc++.h>
using namespace std;
void fun1(){
int cnt=0;
char previous=getchar(),current;
cnt=1;
while(current=getchar()){
if(current==previous){
cnt++;
}else{
if(cnt>1)
cout<<cnt;
putchar(previous);
previous=current;
cnt=1;
}
if(current=='\n') break;
}
}
void fun2(){
char c;
int cnt=0;
while((c=getchar())!='\n'){
if(isdigit(c)){
cnt=cnt*10+c-'0';
}else{
if(cnt==0)
cnt=1;
for(int i=0;i<cnt;i++)
putchar(c);
cnt=0;
}
}
}
int main(){
switch(getchar()){
case 'C':
getchar();
fun1();
break;
case 'D':
getchar();
fun2();
break;
}
return 0;
}
//4
#include<bits/stdc++.h>
using namespace std;
int fun(char a[1000]){
int l=strlen(a);
int flag=0;
for(int i=0;i<l/2;i++){
if(a[i]!=a[l-1-i]) flag=1;
}
return flag==1 ? 0:1; //0就不是回文数,1为回文数
}
void fun1(char a[1000],char b[1000]){ //倒置函数
int l=strlen(a);
for(int i=0;i<l;i++)
b[i]=a[l-1-i];
}
void addbtoa(char a[],char b[]){
int l=strlen(a),sum,t=0;
for(int i=l-1;i>=0;i--){
sum=a[i]-'0'+b[i]-'0'+t;
a[i]=sum%10+'0';
t=sum/10;
}
if(t){
memmove(a+1,a,l+1);
a[0]=t+'0';
}
}
int main(){
char a[1000],b[1000],c[1000];
scanf("%s",a);
int cnt=0;
while(cnt<10&&!fun(a)){
fun1(a,b); ///倒置
printf("%s + %s = ",a,b);
addbtoa(a,b);
//fun2(a,b); ///求和
printf("%s\n",a);
cnt++;
}
if(cnt==10){
printf("Not found in 10 iterations.");
}else{
printf("%s is a palindromic number.",a);
}
return 0;
}*/
/*void fun2(char a[1100],char b[1100]){ ////////求和函数
int s1[1000],s2[1000];
int l1=strlen(a);
int l2=strlen(b);
int sum1,sum2,sum;
sum1=sum2=sum=0;
for(int i=0;i<l1;i++)
s1[i]=a[i]-'0';
for(int i=0;i<l1;i++)
sum1=sum1*10+s1[i];
for(int i=0;i<l2;i++)
s2[i]=b[i]-'0';
for(int i=0;i<l2;i++)
sum2=sum2*10+s2[i];
sum=sum1+sum2;
int t=0;
while(sum){
a[t++]=sum%10+'0';
sum/=10;
}
char p;
for(int i=0;i<t/2;i++){
p=a[i];
a[i]=a[t-1-i];
a[t-1-i]=p;
}
}*/
//5
#include<bits/stdc++.h>
using namespace std;
struct Stu{
string name;
int code=1,mid=-1,fin=-1,score=-1;
}stu[10010];
int p,m,n;
map<string,int> mp;
int cmp(Stu a,Stu b){
if(a.score!=b.score) return a.score>b.score;
else return a.name<b.name;
}
int main(){
scanf("%d%d%d",&p,&m,&n);
string id;
int coddde;
mp.clear();
int num=0;
for(int i=1;i<=p;i++){
cin>>id>>coddde;
num++;
mp[id]=num;
stu[mp[id]].name=id;
stu[mp[id]].code=coddde;
}
for(int i=1;i<=m;i++){
cin>>id>>coddde;
if(mp[id]){
stu[mp[id]].mid=coddde;
}
}
for(int i=1;i<=n;i++){
cin>>id>>coddde;
if(mp[id]){
stu[mp[id]].fin=coddde;
if(stu[mp[id]].mid>stu[mp[id]].fin ){
stu[mp[id]].score=stu[mp[id]].mid*0.4+stu[mp[id]].fin*0.6+0.5;
}else{
stu[mp[id]].score=stu[mp[id]].fin;
}
}
}
sort(stu+1,stu+1+num,cmp);
for(int i=1;i<=num;i++){
if(stu[i].code>=200&&stu[i].score>=60){
cout<<stu[i].name;
printf(" %d %d %d %d\n",stu[i].code,stu[i].mid,stu[i].fin,stu[i].score );
}
}
return 0;
}

posted @ 2019-02-27 16:00  捕鱼儿海  阅读(182)  评论(0编辑  收藏  举报