自创数组模拟指针 2652: 数组操作
来源:互联网 发布:心理医生在线解答软件 编辑:程序博客网 时间:2024/05/17 01:16
2652: 数组操作
对于一个长度为n,初始化为0的数组,定义如下操作。
S x 找出下标大于等于x的第一个值为0的元素,并输出其下标。
M x 将x标记为1
现在给出m次操作,请输出每次操作之后的结果。
注意数组的下标从0开始。
Input
多组输入,每组如下:
n,m (1<=n<=1000000,1<=m<=100000)
以下m行。如果是S x。你需要输出选择的下标(不存在输出-1)。
如果是M x (0<=x<=n-1)。你需要将下标为x的元素标记为1。不输出。
n=m=0表示输入结束。
Output
对于每个S x。输出一行。
Sample Input
10 5M 4S 4S 0M 0S 0
Sample Output
501
#include<stdio.h>
int a[1000001],b[1000001];
int main()
{
char ch;
int x,n,m;
while(scanf("%d%d ",&n,&m)!=EOF)
{
if(n==0&&m==0) break;
for(int i=0;i<n;i++) b[i]=i;
for(int i=0;i<m;i++)
{
scanf("%c ",&ch);
scanf("%d ",&x);
if(ch=='S')
{
bool flag=false;
if(b[x]==x)
{
printf("%d/n",x);
flag=true;
}
int temp=b[x];
while(!flag&&temp<n)
{
if(b[temp]==temp)
{
printf("%d/n",temp);
flag=true;
}
temp=b[temp];
}
if(!flag) printf("-1/n");
}
else
b[x]=x+1;
}
}
return 0;
}
- 自创数组模拟指针 2652: 数组操作
- 自创数组模拟指针 2645: Working in JLU
- 指针数组的操作
- 指针变量操作数组
- 指针操作二维数组
- 数组指针操作元素
- 数组操作 指针
- 数组的指针操作
- 数组指针的指针操作
- 二级指针操作指针数组
- C++ 指针/数组指针操作
- C++ 指针/数组指针操作
- 数组指针操作一维二维数组
- 用数组模拟栈操作
- 用数组模拟栈操作
- 三维数组的指针操作
- php 数组的指针操作
- 指针、数组的相关操作
- 早晨
- 解析phpwind团购模块实现
- JOJ 2650: 礼物
- 转:VS2010测试方面的文章
- Flash cs5 初试
- 自创数组模拟指针 2652: 数组操作
- 各种操作系统
- Android高手进阶教程(四)之----Android 中自定义属性(attr.xml,TypedArray)的使用!
- 【水晶报表函数集】货币转换为中文描述
- 2651: 奇怪的晚会
- IBM教程:将samba用作pdc
- VC 6.0在链接Link时经常卡死问题
- 集装箱堆场管理系统
- tab控件的用法