题目描述
从输入文件中读取一些被压缩的数据,进行解压,再根据题目要求将结果输出至屏幕。
输入格式
它的第一行为一个正整数 k,指明以下的数据分为 k 段。
第二行是 k 段压缩数据串,每个段有两种格式(数之间用一个空格分隔):
如果每段第 11 个数 n 为正,则该段只有两个数,其解压操作是将该段的第 22 个数重复 n 次;
如果每段第 11 个数 n 为负数,则该段有 ∣n∣+1 个数,其解压操作是重复该段从第 22 个数开始的 ∣n∣ 个数一次。(注:∣n∣ 表示取 n 的绝对值)
输出格式
输出到屏幕 ,经解压后得到的整数串上所有数字之和
输入输出样例
输入#1
5
3 2 -5 0 1 2 3 4 5 1 5 0 -4 4 3 2 1
输出#1
31
代码
#include <bits/stdc++.h>
using namespace std;
int n,x,b,ans;
int a[10005];
int main(){
cin>>n;
while(cin>>x){
if(x>0){
cin>>b;
for(int i=1;i<=x;i++){
ans+=b;
}
}
else{
for(int i=1;i<=abs(x);i++){
cin>>b;
ans+=b;
}
}
}
cout<<ans;
return 0;
}