题目描述
从输入文件中读取一些被压缩的数据,进行解压,再根据题目要求将结果输出至屏幕。
输入格式
它的第一行为一个正整数 𝑘,指明以下的数据分为 𝑘 段。
第二行是 𝑘k 段压缩数据串,每个段有两种格式(数之间用一个空格分隔):
如果每段第 1 个数 𝑛为正,则该段只有两个数,其解压操作是将该段的第 2 个数重复 𝑛 次;
如果每段第 1 个数 𝑛 为负数,则该段有∣n∣+1 个数,其解压操作是重复该段从第 22 个数开始的 ∣𝑛∣ 个数一次。(注:∣𝑛∣ 表示取 𝑛 的绝对值)
输出格式
输出到屏幕 。经解压后得到的整数串上所有数字之和。
输入输出样例
输入 #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;
}