背景 Background | |||
梓轩学姐正在备战NOI | |||
描述 Description | |||
梓轩学姐为了练习数组的基本操作而请求了山神,包括了数组的输入,输出,查找,插入,删除操作。 山神给了紫萱n个数,然而紫萱学姐是个蒟蒻并不会做,请你帮助她根据山神的操作命令对数组进行操作。 数组下列操作命令 1 i (1代表输出命令,i代表要输出数组的第i个元素,) 2 i k (2代表插入命令,i和k表示要在数组第i个元素后插入数字k) 3 i (3代表删除命令,i表示删除第i个数) 4 k (4代表查找命令,k是要查找的数,如果查找到,输出第一个查找到的数在数组的位置,如果找不到输出-1) 具体解释看样例 |
|||
输入格式 Input Format | |||
第一行一个n 表示数组有n个元素 (n<=100) 第二行为n个正整数,小于10^6 第三行为为m,表示下面有m个命令 5<=m<=10000 每行一个命令,每行的第一个数表示命令的意义,数据保证命令合法有效。 |
|||
输出格式 Output Format | |||
根据输入的相关命令,输出相应的值。 | |||
#include<iostream> #include<cstdio> #include<cmath> #include<iomanip> using namespace std; int n,a[200]; void x1(int i) { cout<<a[i]<<endl; } void x2(int i,int k) { for(int j=n;j>=i+1;j--) a[j+1]=a[j]; a[i+1]=k; n++; } void x3(int i) { for(int j=i;j<=n-1;j++) a[j]=a[j+1]; n--; } void x4(int k) { for(int j=1;j<=n;j++) if(a[j]==k) {cout<<j<<endl; return;} cout<<-1<<endl; } int main() { freopen("interesting.in","r",stdin); freopen("interesting.out","w",stdout); cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; int m; cin>>m; for(int i=1;i<=m;i++) { int x,y,z; cin>>x; if(x==1) { cin>>y; x1(y); } if(x==2) { cin>>y>>z; x2(y,z); } if(x==3) { cin>>y; x3(y); } if(x==4) { cin>>y; x4(y); } } return 0; }