NC54667. 双流机场
描述
输入描述
第一行输入一个正整数T(T<20)代表有 T 组数据
对于每一组数据:
第一行输入两个正整数 n,m(2<=n,m<=10^5)
第二行输入 n 个 0 或者是 1 , 0 代表该扶梯向下运输行人, 1 代表该扶梯向上运输行人 ,从左往右 n 个 0,1 代表从从左往右 n 个自动扶梯的走向。
第三输入 m 个 0 或者是 1 , 0 代表该扶梯向左运输行人, 1 代表该扶梯向右运输行人 ,从左往右 m 个 0,1 代表从从上往下 m 个自动扶梯的走向。
输出描述
每行输出一个“Happy”或者是“Sad”(没有引号)。
示例1
输入:
2 3 3 010 010 3 3 011 011
输出:
Sad Happy
说明:
C(clang 3.9) 解法, 执行用时: 10ms, 内存消耗: 2116K, 提交时间: 2019-12-05 17:35:29
#include<stdio.h> int main() { int t, n, m, i, j; char a[100000], b[100000]; scanf("%d", &t); for (i = 0; i < t; i++) { scanf("%d%d", &n, &m); scanf("%s%s", &a, &b); if (a[0]==b[0]&&a[n-1]==b[m-1]&&a[0]!=a[n-1]) printf("Happy\n"); else printf("Sad\n"); } return 0; }
C++14(g++5.4) 解法, 执行用时: 62ms, 内存消耗: 772K, 提交时间: 2019-11-17 15:58:27
#include<bits/stdc++.h> using namespace std; int main() { int t; cin>>t; for(int i=0;i<t;i++) { int n,m; cin>>n>>m; string a,b; cin>>a; cin>>b; if(a[0]!=a[n-1]&&b[0]!=b[m-1]&&a[0]==b[0]) { cout<<"Happy"<<endl; } else cout<<"Sad"<<endl; } return 0; }
Python3(3.5.2) 解法, 执行用时: 25ms, 内存消耗: 3900K, 提交时间: 2019-11-17 15:06:10
n = int(input()) for i in range(n): n, m = map(int, input().split()) strn = input() strm = input() if(strn[0] != strm[m-1] and strn[n-1] != strm[0] and strn[0] == strm[0] and strn[n-1] == strm[-1]): print("Happy") else: print("Sad")
C++11(clang++ 3.9) 解法, 执行用时: 104ms, 内存消耗: 2368K, 提交时间: 2019-11-24 17:09:19
#include<bits/stdc++.h> using namespace std; int main () { int k,n,m; cin>>k; while(k--){ cin>>n>>m; string a,b; cin>>a>>b; if(a[0]!=a[n-1]&&b[0]!=b[m-1]&&a[0]==b[0]) cout<<"Happy"<<endl; else cout<<"Sad"<<endl; } return 0; }