View Code of Problem 97

#include <bits/stdc++.h>
using namespace std;
#define N 1005
const string s1=".exe";

int func(string str1[] , int k,int n) {
	int len = str1[k].length();
	string s = str1[k].substr(0,len-4);
//	cout<<"s="<<s<<endl;
	for(int i=0;i<n;i++) {
		if(str1[i].length()!=str1[k].length() && str1[i]==s) {
			return 1;
		}
	}
	return 0;
}
int main()
{
	int n;
	while(cin>>n) {
		if(n==0)	break;
		string str1[N];
		string str2[N];
		int flag = -1,k=0;;
		for(int i=0;i<n;i++)
			cin>>str1[i];
		for(int i=0;i<n;i++) {
			int len = str1[i].length();
			if(len>4) {
				string s2 = str1[i].substr(len-4,4);
//				bool ss = s2==s1?true:false;
//				cout<<s2<<" "<<ss<<endl;
				if(s2==s1) {
					flag = func(str1,i,n);
//					cout<<"flag:"<<flag<<endl;
					if(flag)
						str2[k++]=str1[i];
				}
			}
			
		}
		if(k>0) {
			if(k>1){
				sort(str2,str2+k);	
				for(int i=0;i<k;i++)
					cout<<str2[i]<<endl;
			}else {
				cout<<str2[0]<<endl;	
			}
		}

	}

	return 0;
 } 

Double click to view unformatted code.


Back to problem 97