PAT 2021 9/11
第一题感觉挺简单的 但是一直是11分,求解释
#include<iostream>
#define MaxN 100010
using namespace std;
struct Node{
long long int add;
int size;
}E[MaxN];
int S[MaxN];
bool st[MaxN];
int N,M;
int main(){
long long int num;
scanf("%d%d",&N,&M);
for(int i=0;i<N;i++){
scanf("%lld%d",&E[i].add,&E[i].size);
if(i==0){
S[i]=E[i].size;
}else{
S[i]=S[i-1]+E[i].size;
}
st[i]=false;
}
int j;
for(int i=0;i<M;i++){
scanf("%lld",&num);
bool success=false;
for(j=0;j<N;j++){
if(S[j]>num){
st[j]=true;
success=true;
break;
}
}
if(i!=0){
printf("\n");
}
if(!success){
printf("Illegal Access");
}else{
long long int res;
if(j>0){
res=E[j].add+(num-S[j-1])*4;
}else if(j==0){
res=E[j].add+(num)*4;
}
printf("%lld",res);
}
}
int cnt=0;
for(int i=0;i<N;i++){
if(st[i]){
cnt++;
}
}
printf("\n%d\n",cnt);
return 0;
}
第四题不会…没有复习过堆树什么的 …求讲解