top1编程
← 返回题目
题解

【基础】新生舞会

1 条题解

  • 0
    @ 2026-7-29 0:18:24
    #include<bits/stdc++.h>
    using namespace std;
    struct stu{
    	string a;
    	long long b;
    	char c;
    }s[1005];
    int main(){
    	int n;
    	cin>>n;
    	for(int i=1;i<=n;i++){
    		cin>>s[i].a>>s[i].b>>s[i].c;
    	}
    	int m;
    	cin>>m;
    	int z=0;
    	char x,y;
    	while(m--){
    		string s1,s2;
    		cin>>s1>>s2;
    		z=0;
    		if(s1[0]<='9'){
    			// s1是数字
    			for(int i=0;i<=s1.size()-1;i++){
    				z=s1[i]-'0'+z*10;
    			}
    			for(int i=1;i<=n;i++){
    				if(z==s[i].b){
    					x=s[i].c;
    				}
    			}
    		}
    		else{
    			for(int i=1;i<=n;i++){
    				if(s1==s[i].a){
    					x=s[i].c;
    				}
    			}
    		}
    		z=0;
    		if(s2[0]<='9'){
    			// s1是数字
    			for(int i=0;i<=s2.size()-1;i++){
    				z=s2[i]-'0'+z*10;
    			}
    			for(int i=1;i<=n;i++){
    				if(z==s[i].b){
    					y=s[i].c;
    				}
    			}
    		}
    		else{
    			for(int i=1;i<=n;i++){
    				if(s2==s[i].a){
    					y=s[i].c;
    				}
    			}
    		}
    		if(x!=y){
    			cout<<"Y"<<endl;
    		}
    		else{
    			cout<<"N"<<endl;
    		}
    	}
    	return 0;
    }
    
    • 1