codeforces Variable Shadowing 2014 NEERC Southern Subregional M 贪心策略

2015-01-27 14:16:55 · 作者: · 浏览: 38

传送门:2014 NEERC Southern Subregional M

按要求输出所有出现重复定义情况时的错误信息


(1)每遇到一个{,就进入下一层

(2)每遇到一个字母,首先判断上面层次中是否有该字母的定义,若有则输出错误信息,然后记录下该层次并记录该点的行列位置

(3)每遇到一个},就退回上一层,然后把该层中所有的字母定义位置删去

/******************************************************
 * File Name:   m.cpp
 * Author:      kojimai
 * Create Time: 2014年10月25日 星期六 15时09分36秒
******************************************************/

#include
  
   
#include
   
     #include
    
      #include
     
       #include
      
        #include
       
         using namespace std; vector
        
          p[27]; char s[55]; int hang[26][2505],lie[26][2505]; void solve(int level) { for(int i = 0;i < 26; i++){ while(p[i].size()&&p[i][p[i].size()-1] > level)//退回上一层后删去删去底下层次中的记录 p[i].erase(p[i].begin()+p[i].size()-1); } } int main() { int n; for(int i = 0;i < 26; i++) p[i].clear(); scanf("%d",&n); getchar(); int level = 1; for(int i = 0;i < n; i++) { gets(s); int len = strlen(s); for(int j = 0;j < len; j++) { //cout<<"i = "<