pat乙级1081-1085

//1
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
scanf("%d",&n);
getchar();
string s;
int cnt1,cnt2,cnt3,cnt4;
while(n--){
getline(cin,s);
cnt1=cnt2=cnt3=cnt4=0;
int l=s.length();
if(l<6){
printf("Your password is tai duan le.\n");
continue;
}else{
for(int i=0;i<l;i++){
if(isdigit(s[i])) cnt1++;
else if(isalpha(s[i])) cnt2++;
else if(s[i]=='.') cnt3++;
else cnt4++;
}
if(cnt4!=0){
printf("Your password is tai luan le.\n");
continue;
}else{
if(cnt1==0&&cnt2>0){
printf("Your password needs shu zi.\n");
continue;
}
if(cnt1>0&&cnt2==0){
printf("Your password needs zi mu.\n");
continue;
}
if(cnt1>0&&cnt2>0){
printf("Your password is wan mei.\n");
continue;
}
}

}
}
return 0;
}
//2
#include<bits/stdc++.h>
using namespace std;
int maxn=1e5+10;
struct node{
char cnt[5];
int x,y,num;
};
int cmp(node a,node b){
return a.num<b.num;
}
int main(){
node q[maxn];
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%s%d%d",q[i].cnt,&q[i].x,&q[i].y );
q[i].num=q[i].x*q[i].x+q[i].y*q[i].y;
}
sort(q+1,q+1+n,cmp);
printf("%s %s",q[1].cnt,q[n].cnt);
return 0;
}
//3
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
scanf("%d",&n);
int s[10005]={0},t;
for(int i=1;i<=n;i++){
scanf("%d",&t);
s[abs(t-i)]++;
}
for(int i=10000;i>=0;i--){
if(s[i]>1)
printf("%d %d\n",i,s[i]);
}
return 0;
}
//4
#include<stdio.h>
int main(){
int d,n;
scanf("%d %d",&d,&n);
int s1[100000]={0},s2[100000]={0};
s1[0]=s2[0]=d;
int cnt,p,len=1;
while(--n){
cnt=1;p=1;
for(int i=1;i<len;i++){
if(s1[i]==s2[i])
cnt++;
else{
s2[p++]=cnt;
s2[p++]=s1[i];
cnt=1;
}
}
s2[p++]=cnt;
len=p;
for(int i=0;i<len;i++)
s1[i]=s2[i];
}
for(int i=0;i<len;i++)
printf("%d",s2[i]);
return 0;
}
//5
#include<bits/stdc++.h>
using namespace std;
struct node{
string school;
int tws,ns;
};
int cmp(node a,node b){
if(a.tws!=b.tws )
return a.tws>b.tws;
else if(a.ns!=b.ns )
return a.ns<b.ns;
else
return a.school<b.school;
}
int main(){
int n;
scanf("%d",&n);
unordered_map<string,int>cnt;
unordered_map<string,double>sum;
for(int i=0;i<n;i++){
string id,school;
double score;
cin>>id;
scanf("%lf",&score);
cin>>school;
for(int j=0;j<school.length();j++)
school[j]=tolower(school[j]);
if(id[0]=='B') score/=1.5;
if(id[0]=='T') score*=1.5;
sum[school]+=score;
cnt[school]++;
}
vector<node>ans;
for(auto it=cnt.begin();it!=cnt.end();it++)
ans.push_back(node{it->first,(int)sum[it->first],cnt[it->first]});
sort(ans.begin(),ans.end(),cmp);
int rank=0,pre=-1;
printf("%d\n",ans.size());
for(int i=0;i<ans.size();i++){
if(pre!=ans[i].tws ) rank=i+1;
pre=ans[i].tws;
printf("%d ",rank);
cout<<ans[i].school;
printf(" %d %d\n",ans[i].tws,ans[i].ns);
}
return 0;
}

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