rt
以下代码过不了 #16 和 #25:
#include <bits/stdc++.h>
using namespace std;
string m[50005],n[50005];
string ls[4][50005];
map<string,long>s;
long x;
long tv=0;
long js1(long q){
long u=m[q].size();
long fh=0;
for(long i=0;i<u;i++){
fh=(fh*10)+(m[q][i]-'0');
}
return fh;
}
long js2(long q){
long u=n[q].size();
long fh=0;
for(long i=0;i<u;i++){
fh=(fh*10)+(n[q][i]-'0');
}
return fh;
}
int main(){
cin>>x;
for(long i=1;i<=x;i++){
cin>>m[i];
s[m[i]]=0;
}
for(long i=1;i<=x;i++){
cin>>n[i];
s[n[i]]=0;
}
for(long i=1;i<=x;i++){
if((m[i][0]>='a'&&m[i][0]<='z')&&(n[i][0]>='a'&&n[i][0]<='z')){
if(s[m[i]]==0&&s[n[i]]==0){
tv++;
ls[1][tv]=m[i];
ls[2][tv]=n[i];
continue;
}
if(s[m[i]]==s[n[i]]) continue;
if(s[m[i]]!=0&&s[n[i]]==0){
s[n[i]]=s[m[i]];
continue;
}
if(s[m[i]]==0&&s[n[i]]!=0){
s[m[i]]=s[n[i]];
continue;
}
cout<<"NE";
exit(0);
continue;
}
if((!(m[i][0]>='a'&&m[i][0]<='z'))&&(n[i][0]>='a'&&n[i][0]<='z')){
long jc=js1(i);
if(s[n[i]]==0){
s[n[i]]=jc;
}
if(s[n[i]]!=jc){
cout<<"NE";
exit(0);
}
continue;
}
if((m[i][0]>='a'&&m[i][0]<='z')&&(!(n[i][0]>='a'&&n[i][0]<='z'))){
long jc=js2(i);
if(s[m[i]]==0){
s[m[i]]=jc;
}
if(s[m[i]]!=jc){
cout<<"NE";
exit(0);
}
continue;
}
if(m[i]==n[i]) continue;
cout<<"NE";
exit(0);
}
for(long i=1;i<=tv;i++){
if(s[ls[1][i]]==s[ls[2][i]]) continue;
if(s[ls[1][i]]==0){
s[ls[1][i]]=s[ls[2][i]];
continue;
}
if(s[ls[2][i]]==0){
s[ls[2][i]]=s[ls[1][i]];
continue;
}
if(s[ls[1][i]]!=s[ls[2][i]]){
cout<<"NE";
exit(0);
}
}
cout<<"DA";
return 0;
}
以下代码过得了 #16 #25 但有别的点过不了:
#include <bits/stdc++.h>
using namespace std;
string m[50005],n[50005];
string ls[3][50005];
map<string,int>s;
int x;
int tv=0;
int js1(int q){
int u=m[q].size();
int fh=0;
for(int i=0;i<u;i++){
fh=(fh*10)+(m[q][i]-'0');
}
return fh;
}
int js2(int q){
int u=n[q].size();
int fh=0;
for(int i=0;i<u;i++){
fh=(fh*10)+(n[q][i]-'0');
}
return fh;
}
int main(){
cin>>x;
for(int i=1;i<=x;i++){
cin>>m[i];
s[m[i]]=0;
}
for(int i=1;i<=x;i++){
cin>>n[i];
s[m[i]]=0;
}
for(int i=1;i<=x;i++){
//cout<<endl;
//cout<<m[i]<<"\n";
//cout<<n[i]<<"\n";
if(m[i]==n[i]) continue;
if((m[i][0]>='a'&&m[i][0]<='z')&&(n[i][0]>='a'&&n[i][0]<='z')){
if(s[m[i]]==0&&s[n[i]]==0){
tv++;
ls[1][tv]=m[i];
ls[2][tv]=n[i];
continue;
}
if(s[m[i]]==s[n[i]]) continue;
if(s[m[i]]!=0&&s[n[i]]==0){
s[n[i]]=s[m[i]];
continue;
}
if(s[m[i]]==0&&s[n[i]]!=0){
s[m[i]]=s[n[i]];
continue;
}
cout<<"NE";
exit(0);
continue;
}
if((!(m[i][0]>='a'&&m[i][0]<='z'))&&(n[i][0]>='a'&&n[i][0]<='z')){
int jc=js1(i);
if(s[n[i]]==0){
s[n[i]]=jc;
}
if(s[n[i]]!=jc){
cout<<"NE";
exit(0);
}
continue;
}
if((m[i][0]>='a'&&m[i][0]<='z')&&(!(n[i][0]>='a'&&n[i][0]<='z'))){
int jc=js2(i);
if(s[m[i]]==0){
s[m[i]]=jc;
}
if(s[m[i]]!=jc){
cout<<"NE";
exit(0);
}
continue;
}
cout<<"NE";
exit(0);
}
for(int i=1;i<=tv;i++){
if(s[ls[1][i]]!=s[ls[2][i]]){
cout<<"NE";
exit(0);
}
}
cout<<"DA";
return 0;
}
悬关