华为第十届 关灯计划
在某次活動上,某組織打算控制一棟宿舍樓的燈光來進行一次燈光表演。
他們的實現方式是使所有宿舍全部打開房間內電燈開關,然后通過自己控制電閘來使部分房間通電亮燈,從而擺出一定的圖案。
已知該宿舍樓有 n 層,每層有 m 個房間,房間號從右向左遞增,且房間號都是奇數。
由于這個組織為了表演控制宿舍通電造成了在宿舍的同學的諸多不便,現在小暗打算破壞他們的亮燈活動。
他可以和宿舍樓里相關宿舍的人私下勾結,使得本該亮燈的宿舍在亮燈時自主關掉自己房間的燈的開關,導致即使電閘控制通電,這個房間的燈光依然不亮,從而破壞原本計劃擺出的圖案。
現在給出原始計劃擺出的圖案,以及小暗打算惡搞成的新圖案。請判斷小暗的計劃是否可行,如果可行輸出要私下勾結的宿舍號(宿舍只有奇數號,從右到左房間號遞增)。
Input
第一行輸入兩個整數 n、m。
接下來先輸入 n 行,每行 m 個字符,表示初始的亮燈圖案(`@` 表示亮,`.` 表示暗)。
最后再輸入 n 行,每行 m 個字符,表示小暗計劃達成的亮燈圖案。
1 <= n <= 9
1 <= m <= 50
Output
如果小暗的計劃可以達成,則將所有需要勾結關掉開關的宿舍號輸出,每行一個,順序任意。
宿舍號的格式為:第一位是樓層號,第二位和第三位是房間序號,從 1 開始,不足 10 的前面補 0。
如果計劃不可達成,輸出"bark"(不包括引號)。
Sample Input
5 5 @@@@@ @.... @@@@@ ....@ @@@@@ ..... ..... @@@@@ ..... .....?
Sample Output
101 103 105 107 109 201 409 501 503 505 507 509?
#include <stdio.h> char s1[100][100],s2[100][100]; int main() {int i,j,n,m,p=0,k;scanf("%d%d",&n,&m);for(i=0; i<n; i++){getchar();//在這卡了好久for(j=0; j<m; j++)scanf("%c",&s1[i][j]);}for(i=0; i<n; i++){getchar();for(j=0; j<m; j++)scanf("%c",&s2[i][j]);}for(i=0; i<n; i++)for(j=0; j<m; j++)if(s1[i][j]=='.'&&s2[i][j]=='@'){p=1;break;}if(p==1)printf("bark\n");else{for(i=n-1,p=1; i>=0; i--,p+=1)for(j=m-1,k=1; j>=0; j--,k+=2)if(s1[i][j]=='@'&&s2[i][j]=='.'){printf("%d\n",p*100+k);}}?
總結
以上是生活随笔為你收集整理的华为第十届 关灯计划的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 调整k8s的iptable参数时启动生效
- 下一篇: Pr:导出设置之元数据