pat乙级1071-1075

//1
#include<bits/stdc++.h>
using namespace std;
int main(){
int t1,k;
scanf("%d%d",&t1,&k);
int n1,b,t2,n2,total=t1;
while(k--){
scanf("%d%d%d%d",&n1,&b,&t2,&n2);
if(t2>total){
//total=t1;
printf("Not enough tokens. Total = %d.\n",total);
}else if((b==0&&n1>n2)||(b==1&&n1<n2)){
total+=t2;
printf("Win %d! Total = %d.\n",t2,total);
}else if((b==0&&n1<n2)||(b==1&&n1>n2)){
total-=t2;
printf("Lose %d. Total = %d.\n",t2,total);
}
if(total==0){
printf("Game Over.\n");
break;
}
}
return 0;
}
//2
#include<stdio.h>
typedef struct{
char name[5];
int num;
int number[12];
}student;
int main(){
int n,m;
scanf("%d %d",&n,&m);
int a[m];
for(int i=0;i<m;i++){
scanf("%04d",&a[i]);
}
int flag[n];
student stu[n];
int s=0,t=0;
for(int i=0;i<n;i++){
flag[i]=0;
scanf("%s %d",stu[i].name,&stu[i].num);
for(int j=0;j<stu[i].num;j++){
scanf("%04d",&stu[i].number[j]);
for(int k=0;k<m;k++){
if(stu[i].number[j]==a[k]){
if(!flag[i]){flag[i]=1;}
}
}
}
if(flag[i]==1){
s++;
printf("%s:",stu[i].name );
for(int j=0;j<stu[i].num;j++){
for(int k=0;k<m;k++){
if(stu[i].number[j]==a[k]){
printf(" %04d",a[k]);++t;}
}
}
printf("\n");
}
}
printf("%d %d",s,t);
return 0;
}
//3
#include<bits/stdc++.h>
using namespace std;
typedef struct{
int score;
int cnt;
int right_cnt;
int p[5];
}question;
int main(){
int n,m,max_error=0;
scanf("%d%d",&n,&m);
question q[m];
int error[m][5];
for(int i=0;i<m;i++){
for(int j=0;j<5;j++){
q[i].p[j]=0;
error[i][j]=0;
}
}
for(int i=0;i<m;i++){
scanf("%d%d%d",&q[i].score,&q[i].cnt,&q[i].right_cnt );
char c;
for(int j=0;j<q[i].right_cnt ;j++){
scanf(" %c",&c);
q[i].p[c-'a']++;
}
}
for(int i=0;i<n;i++){
getchar();
double grade=0.0;
for(int j=0;j<m;j++){
char c;
int stu[5]={0},isright=1,allright=1,cnt;
scanf("(%d",&cnt);
for(int l=0;l<cnt;l++){
scanf(" %c",&c);
stu[c-'a']++;
}
for(int k=0;k<5;k++){
if(q[j].p[k]==1&&stu[k]==0){
allright=0;
error[j][k]++;
}else if(q[j].p[k]==0&&stu[k]==1){
isright=0;
error[j][k]++;
}
if(error[j][k]>max_error){
max_error=error[j][k];
}
}
scanf(")");
if(j!=m-1){
scanf(" ");
}
if(isright){
if(allright){
grade+=q[j].score;
}else{
grade+=q[j].score/2.0;
}
}

}
printf("%.1f\n",grade);
}
if(max_error==0){
printf("Too simple\n");
}else{
for(int i=0;i<m;i++){
for(int k=0;k<5;k++){
if(error[i][k]==max_error){
printf("%d %d-%c\n",max_error,i+1,k+'a');
}
}
}
}
return 0;
}
//4
#include<bits/stdc++.h>
using namespace std;
int main(){
string a,b,c;
int s1[22]={0},s2[22]={0},s3[22]={0},s4[22]={0};
cin>>a>>b>>c;
int l=a.length();
int m=b.length();
int n=c.length();
for(int i=0;i<l;i++)
s1[i]=a[l-1-i]-'0';

for(int i=0;i<m;i++)
s2[i]=b[m-1-i]-'0';

for(int i=0;i<n;i++)
s3[i]=c[n-1-i]-'0';
int l1=l>m?l:m;
//l1=l1>n?l1:n;
int t=0;
for(int i=0;i<=l1;i++){
if(s1[i]==0) s1[i]=10;
s4[i]=(s2[i]+s3[i]+t)%s1[i];
t=(s2[i]+s3[i]+t)/s1[i];
}
int flag=-1,f=0;
for(int i=l1;i>=0;i--){
if(s4[i]!=0){
flag=i;
break;
}
}
if(flag==-1){
printf("0");
}else{
for(int i=l1;i>=0;i--){
if(f==0&&s4[i]==0) continue;
if(s4[i]!=0) f=1;
printf("%d",s4[i]);
}
}
return 0;
}
//5
#include<bits/stdc++.h>
using namespace std;
struct node{
int data;
int next;
};
int main(){
int start,n,k,a;
cin>>start>>n>>k;

node q[100010];
for(int i=0;i<n;i++){
cin>>a;
cin>>q[a].data>>q[a].next;
}
vector<int> v[3];
int p=start;
while(p!=-1){
if(q[p].data<0){
v[0].push_back(p);
}else if(q[p].data>=0&&q[p].data<=k){
v[1].push_back(p);
}else{
v[2].push_back(p);
}
p=q[p].next;
}
int flag=0;
for(int i=0;i<3;i++){
for(int j=0;j<v[i].size();j++){
if(!flag){
printf("%05d %d ",v[i][j],q[v[i][j]].data );
flag=1;
}else{
printf("%05d\n%05d %d ",v[i][j],v[i][j],q[v[i][j]].data );
}
}
}
printf("-1");
return 0;
}

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