UVa 1592 Database
2016-04-28 10:53
176 查看
#include<iostream> #include<cstdio> #include<string> #include<map> #include<algorithm> #include<vector> #include<queue> #include<set> #include<cstring> #include<stack> using namespace std; int n,m; int main() { while(scanf("%d %d",&n,&m)!=EOF) { int i,j; string temp; getline(cin,temp); string **arr=new string* ; for(i=0;i<n;i++) arr[i]=new string[m]; int id=0; map<string,int> str2int; map<pair<int,int>,int> pair2int; for(i=0;i<n;i++) { string s; getline(cin,s); int index=0; int index2; for(j=0;j<m;j++) { index2=s.find(',',index); if(index2==-1) { arr[i][j]=s.substr(index); if(!str2int.count(arr[i][j])) { str2int[arr[i][j]]=id; id++; } } else { arr[i][j]=s.substr(index,index2-index); if(!str2int.count(arr[i][j])) { str2int[arr[i][j]]=id; id++; } } index=index2+1; } } int flag=0; for(i=0;i<m;i++) { pair<int,int> temp; for(j=i+1;j<m;j++) { pair2int.clear(); for(int k=0;k<n;k++) { temp.first=str2int[arr[k][i]]; temp.second=str2int[arr[k][j]]; if(pair2int.count(temp)!=0) { int row2=pair2int[temp]; cout<<"NO"<<endl; cout<<row2+1<<" "<<k+1<<endl; cout<<i+1<<" "<<j+1<<endl; flag=1; break; } else pair2int[temp]=k; } if(flag) break; } if(flag) break; } if(!flag) printf("YES\n"); } return 0; }
相关文章推荐
- webview和原生应用交互
- 深入分析Java的序列化与反序列化
- 解析php session_set_save_handler 函数的用法(将session存在数据库中的方法)
- iOS内存警告和内存优化集合二
- 两个应用之间相互跳转
- Swift - Struct 与Class 的差异性
- iOS 之 UITableView 使用详解
- 下一个千亿美金:Uber和京东的内核
- Jenkins Slave 通过JNLP 的方式 访问Master IP 总是127.0.0.1
- SecureCRT下设置问题总结
- python 模拟抓取网页的工具包
- VR相关学习资源,VR学习资源,VR开发资源
- java 505异常,原因http协议参数间不能为空
- 数据结构--树的遍历(前序)
- Oracle update 两表及以上关联更新,出现多值情况,不是一对一更新
- 机器学习评价指标
- js 定时器运作原理实例
- 使用spring @Scheduled注解执行定时任务、
- crontab 安装 和一些 简单的命令
- Android蓝牙4.0API-类-BluetoothGatt