1 条题解
-
0
#include<bits/stdc++.h> #define fu(i,q,w) for(register int i=q;i<=w;i++) #define fd(i,q,w) for(register int i=q;i>=w;i--) using namespace std; typedef long long ll; inline int read(){ int ret=0,f=1;char c; while((c=getchar())<'0'||c>'9')if(c=='-')f=-1; while(c>='0'&&c<='9')ret=ret*10+(c-'0'),c=getchar(); return ret*f; } char word[10];//记录字母 char check[10];//检查重复 string numx,numy;//储存输入数据、检查重复 map<char,int> two;//一行中两位数个数 map<char,int> tone;//存字母在两位数个位出现几次 int n; void in(){ n=read(); cin>>numx;//"+"特判输入 fu(i,1,n-1){cin>>numx,word[i]=numx[0];}// 第一行存表头的每个字母 fu(i,1,n-1)//从第二行开始 fu(j,1,n){cin>>numx; if(j!=1&&j!=2)//表头不算 if(numx==numy){printf("ERROR!");exit(0);}//发现重复输入一定不对 numy=numx; //前后比,不要全行比 if(numx.size()==2){//统计两位数个数 two[word[i]]++;tone[numx[1]]++; } } } void solve(){ fu(i,1,n-1) if(two[word[i]]!=n-2-tone[word[i]]){printf("ERROR!");exit(0);} //比较两种算法的结果是否相同 fu(i,1,n-1) cout<<word[i]<<'='<<two[word[i]]<<' '; printf("\n"); printf("%d",n-1); } int main(){ in(); solve(); return 0; }
- 1
信息
- ID
- 14
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- 4
- 标签
- 递交数
- 7
- 已通过
- 5
- 上传者