2.小明读书( book.cpp)
[问题描述]
小明一向是一个倒霉又聪明的孩纸,今天她坐在一颗苹果树下读书,由于她很倒霉所以不断有很多苹果从树上掉到她的头上,同时又有损友向她扔苹果。现在她数出了一共有 n 个苹果掉到了地上,并且为每个苹果编上了一个字母,并对它们按字典序排序,但是她不知道损友扔给她的苹果应该插入在哪里,现在请你帮帮她吧。
[输入文件]
文件名:book.in
第一行有一个 n,代表树上掉下来了 n 个苹果第二行有 n 个小写字母,代表从树上掉下来苹果的编号第三行只有一个小写字母,代表朋友扔给她的那一个
[输出文件]
文件名 : book.out
一个字符串长度为 n+1,代表插入苹果后的序列。
[样例输入]
9
bcehijrzz
h
[样例输出]
bcefhijrzz
代码:
#include <iostream>
using namespace std;
int main() {
//freopen("book.in","r",stdin);
//freopen("book.out","w",stdout);
int N;
cin>>N;
int *a[1000];
for(int i =0;i<1000;i++){
a[i] = new int [1000];
}
int num[1001];
for(int i = 0; i<N; i++) {
cin>>num[i];
for(int j = 0; j<num[i]; j++) {
cin>>a[i][j];
}
}
int T=0;
int D=0;
int E=0;
int valApp[1001];
bool havFall[1001];
for(int i = 0; i<N; i++){
for(int j = num[i]-1; j>=0; j--){
if(a[i][j]>0){
valApp[i]=a[i][j];
while(j<num[i]-1){
j++;
valApp[i]+=a[i][j];
}
break;
}
}
T+=valApp[i];
}
for(int i = 0; i<N; i++){
int t;
t=a[i][0];
havFall[i] = false;
for(int j = 1; j<num[i]; j++){
if(a[i][j]>0){
if(a[i][j]!=t){
havFall[i] = true;
D++;
break;
}
}
else{
t+=a[i][j];
}
}
}
for(int i = 0;i<N;i++){
if(havFall[(i-1+N)%N] && havFall[(i)%N] && havFall[(i+1+N)%N]){
E++;
}
}
cout<<T<<" "<<D<<" "<<E;
//fclose(stdin);
//fclose(stdout);
return 0;
}