zoukankan      html  css  js  c++  java
  • 【UVA】1596 Bug Hunt(模拟)

    题目

    题目
     


    分析

    算是个模拟吧
     


    代码

    #include <bits/stdc++.h>
    using namespace std;
    map<int,int> a[130];
    char s[85];
    int n[130];
    int PosIs()
    {
    	int len=strlen(s);
    	for(int i=0;i<len;i++)
    		if(s[i]=='=') return i;
    	return -1;
    }
    int get_num(int k)
    {
    	int res=0;
    	if(isalpha(s[k]))
    	{
    		int t=get_num(k+2);
    		if(t<0|| t>=n[s[k]] || !a[s[k]].count(t))
    			res=-1;
    		else res=a[s[k]][t];
    	}
    	for(int i=k;isdigit(s[i]);i++)
    	{
    		if(i==k && s[i]=='0' && isalpha(s[i+1]))
    		{
    			res=-1;
    			break;
    		}
    		res=res*10+s[i]-'0';
    	}
    	return res;
    }
    int main()
    {
    	int res=0;
    	while(scanf("%s",s) && s[0]!='.')
    	{
    		int ans=0,cnt=0;
    		for(int i=0;i<130;i++) a[i].clear();
    		do
    		{
    			if(ans) continue;
    			cnt++;
    			int k=PosIs();
    			if(k<0)
    			{
    				int t=get_num(2);
    				if(t<0){ans=cnt; continue;}
    				n[s[0]]=t;
    			}
    			else
    			{
    				int t1=get_num(2);
    				if(t1<0||t1>=n[s[0]]) {ans=cnt;continue;}
    				int t2=get_num(k+1);
    				if(t2<0) {ans=cnt;continue;}
    				a[s[0]][t1]=t2;
    			}
    		}while(scanf("%s",s) && s[0]!='.');
    		printf("%d
    ",ans);
    	}
    	return 0;
    }
    
  • 相关阅读:
    Java——IO输入/输出
    高级查询---嵌套and分页
    Spring mvc拦截器
    SpringMVC实现文件下载
    SpringMVC是实现文件上传
    初始化参数绑定(日期)
    数据校验
    Web Service
    可以用代码发邮件了哦
    JavaMail和James
  • 原文地址:https://www.cnblogs.com/noblex/p/7897302.html
Copyright © 2011-2022 走看看