EOJ(排序)——2015. 自修室
2015. 自修室
一直不去自修室的 Rocker 最近迫于学习压力决定每天都要去自修,鉴于自修室多多,何必与人争挤,所以 Rocker 要坐在左右一个座位都没人,如果不是第一排,那么他的前面一个座位也没有人的位置上,当然 Rocker 也可以坐在墙边但前面或左边或右边有座位的话要没有人才可以。
Rocker 眼力异常好,只要在门口瞟一眼就可以知道哪个位置上有人哪个没有人,但 Rocker 大脑毕竟不像电脑可以迅速计算出这间教室有没有符合他要求的位置,所以请你写一个程序帮助他。
输入
输入有多个 case,每个 case 第一行有一个数 n 表示自修室的总间数,接下来描述 n(n⩽100) 个自修室的座位情况,接下来按照 Rocker 对于每间自修室,第一行有四个整数 ID,Dis,R,C(Dis⩽2000000,5⩽R,C⩽15),分别是教室的门号,教室距离 Rocker 寝室的距离,座位的行数以及列数。接下来是一个 R∗C 的 0-1 矩阵,
0 表示该座位没有人,1 表示有人。(每间教室 ID,Dis 互异),Rocker 按照距离远近依次找教室自修,去距离寝室最近的一间满足他条件的教室自修。
输出
每个 case 输出一行,如果 Rocker 可以自修的教室 ID,若无教室符合条件,输出 “Bad Luck,Rocker!”
样例
input
2
4110 16 15 15
111111111111111
111111111111111
111111111111111
111111111111111
111111111111111
111111111111111
111111111111111
111111111111111
111111111111111
111111111111111
111111111111111
111111111111111
111111111111111
111111111111111
111111111111111
4102 15 14 15
111111111111111
111111111111111
111111111111111
111111111111111
111111111111111
111111101111111
111111000011111
111111111111111
111111111111111
111111111111111
111111111111111
111111111111111
111111111111111
111111111111111
output
4102
题目大意:
给出n组数据,查找最近的满足条件的自习室。
题目解析:
用string数组读入数据并且判断自习室是否满足条件。
具体代码:
#include<iostream> #include<algorithm> using namespace std; struct node { int id; int dis; } arr[110]; string room[160]; bool cmp(node x,node y) { return x.dis<y.dis; } int main() { int n; while(cin>>n) { int count=0; for(int i=0; i<n; i++) { int id,dis,r,c; cin>>id>>dis>>r>>c; for(int j=0; j<r; j++) cin>>room[j]; for(int j=0; j<r; j++) { int flag=0; for(int k=0; k<c; k++) if(room[j][k]=='0'&&(j==0||room[j-1][k]=='0')&&(k==0||room[j][k-1]=='0')&&(k==r-1||room[j][k+1]=='0')) flag=1; if(flag) { arr[count].id=id; arr[count].dis=dis; count++; break; } } } if(count==0) cout<<"Bad Luck,Rocker!"<<endl; else { sort(arr,arr+count,cmp); cout<<arr[0].id<<endl; } } return 0; }
- 【搜索】BZOJ 3990: 【Sdoi 2015】排序
- [SDOI 2015] 排序
- 2015百度面试题--对10亿个32位整数去重和排序
- EOJ(排序)——2878. 字串排序
- BZOJ 3990 [SDOI 2015] 排序 解题报告
- 【BZOJ 3990】 [SDOI2015]排序
- 字符串排序(2015华为校招—电子科技大学)
- 【2015广东工业大学新生赛A】【排序 二进制数位思想】GG和女神 数字按照数值排序后取了多少个数
- HDU 5461.Largest Point【2015 ACM/ICPC Asia Regional Shenyang Online】【排序】9月19
- EOJ(排序)——2945. Search Web Pages
- BZOJ.3990.[SDOI2015]排序(DFS)
- 【2015-2016 ACM-ICPC, NEERC, Southern Subregional Contest B】【暴力双排序】Layer Cake 若干矩形 选择相同长和宽的最大体积
- EOJ 3124 单词表(排序)
- 【算法】快速排序--C++源代码(VS2015)
- EOJ——Problem #3291——素数个数排序
- 2015调整数组的顺序使奇数位于偶数的前面(不用考虑排序)
- [bzoj3990][SDOI2015]排序-搜索
- bzoj3990: [SDOI2015]排序 dfs 数学
- BZOJ 3990: [SDOI2015]排序
- BZOJ 3990 [SDOI2015]排序 ——搜索