小Y与手套 | ||||||
| ||||||
Description | ||||||
冬天的时候小Y想在网上给自己买了一副手套。小Y有N根手指,手套也有N个指头的指套。小Y的每根手指必须插且仅插到手套的一个指套里面。小Y觉得这样太不优美,他想自己好不容易在网上买点东西,如果既可以既可以正着戴又可以反着戴该多好。要想戴得舒服,显然每个指套的长度就应当大于等于对应手指的长度。 小Y现在看中了一个手套,他想问问你他能否戴上这款手套呢。 如果小Y只能正着戴,不能反过来戴,则输出“front”;(每个Li<=Gi) 如果小Y只能反过来戴,不能正着戴,则输出“back”;(每个Li<=Gn-i+1) 如果小Y正着反着都能都能戴,则输出“both”; 如果小Y怎么都戴不上,则输出“none”。 | ||||||
Input | ||||||
输入的第一行包含一个整数 T,代表测试数据的组数。接下来是 T 组数据。 每组数据的第一行包含一个整数 N,代表小Y有几根手指头。 接下来一行包含 N 个整数,第 i 个记为 Li,代表小Y第 i 根手指的长度。 再接下来一行包含 N 个整数,第 i 个记为 Gi,代表第 i 个指套的长度。 (1≤T≤10,1≤N≤1e+5,1≤Li,Gi≤1e+9) | ||||||
Output | ||||||
对于每组数据,输出一行,包含字符串“front”、“back”、“both”,或者“none”。 | ||||||
Sample Input | ||||||
4 3 1 2 3 2 3 4 3 1 2 1 1 2 1 3 3 2 1 1 2 3 4 1 3 2 4 1 2 3 5 | ||||||
Sample Output | ||||||
front both back none | ||||||
Hint | ||||||
第一组数据:指套长度为 2, 3, 4,手指长度为 1, 2, 3,可以正着戴,但不能反着戴。 |
考点:简单数组遍历
#include<iostream>
using namespace std;
const long long Maxn= 1e5+2;
int main()
{
int t,n;
long long a[Maxn],b[Maxn];
cin>>t;
while(t--&&cin>>n)
{
long long k1=0,k2=0;
for(int i=0; i<n; i++)
cin>>a[i];
for(int i=0; i<n; i++)
cin>>b[i];
for(int i=0; i<n; i++)
{
if(b[i]>=a[i])
k1++;
if(b[n-1-i]>=a[i])
k2++;
}
if(k1==n&&k2==n)
cout<<"both"<<endl;
else if(k1==n&&k2!=n)
cout<<"front"<<endl;
else if(k1!=n&&k2==n)
cout<<"back"<<endl;
else
cout<<"none"<<endl;
}
}