NC206047. 环鸽的CHONG
描述
输入描述
第一行为整数,表示的长度。
第二行个整数,描述。
输出描述
一行字符串,如果能冲输出“chong”,否则输出“fuchong”。
示例1
输入:
5 1 2 3 2 1
输出:
chong
示例2
输入:
5 1 1 2 1 1
输出:
fuchong
C++11(clang++ 3.9) 解法, 执行用时: 189ms, 内存消耗: 10464K, 提交时间: 2020-05-17 15:09:08
#include<bits/stdc++.h> #define ll long long using namespace std; const int N=2e5+10; int a[N],n,f=1,on=1; map<int,int> mp; int main() { cin>>n; for(int i=0;i<n;i++) scanf("%d",a+i); for(int i=0;i<n;i++) mp[a[i]]=0; mp[a[0]]=1; for(int i=1;i<n;i++){ if(a[i]==a[i-1]||on==0) {f=0; break; } if(mp[a[i]]==1) on--; else if(mp[a[i]]==0) on++; mp[a[i]]++; } if(f) puts("chong"); else puts("fuchong"); return 0; }
C++14(g++5.4) 解法, 执行用时: 160ms, 内存消耗: 5980K, 提交时间: 2020-05-17 15:55:11
#include<bits/stdc++.h> using namespace std; const int N=3e5+1000; int a[N]; map<int,int> v; int main() { int n; cin>>n; for(int i=1,x;i<=n;i++)cin>>a[i]; for(int i=1;i<n;i++) { if(a[i]==a[i+1]) { cout<<"fuchong"<<endl; return 0; } } for(int i=1;i<=n;i++) { if(!v[a[i]]) v[a[i]]++; else { v.erase(a[i]); if(v.size()==0) { cout<<"fuchong"<<endl; return 0; } } } cout<<"chong"<<endl; }