[ create a new paste ] login | about

Link: http://codepad.org/lNoO1yo9    [ raw code | output | fork ]

didyxdi - C++, pasted on Sep 3:
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<ctime>
#include<utility>
#include<algorithm>
#include<vector>
#include<queue>
#include<set>
#include<map>
#include<cmath>
#include<cstring>
#include<cctype>
#include<string>
#include<string.h>
#include<list>
#include<strstream>
using namespace std;

string str;
char c[5000];
bool used[30];
vector<int> g[30];
int a[30],n;
int fa[30];
const string s=" abcdefghijklmnopqrstuvwxyz";

void init()
{
	memset(used,false,sizeof(used));
	memset(g,0,sizeof(g));
	memset(a,0,sizeof(a));
	memset(fa,0,sizeof(fa));
	n=0;
}

void dfs(int k,string ans)
{
	if(k==n+1)
	{
		printf("%s\n",ans.c_str());
	//	cout<<ans<<endl;
		return;
	}
/*	cout<<k<<ans<<endl;
	for(int i=1;i<=n;i++)
	cout<<fa[a[i]]<<" ";
	cout<<endl;*/
	
	for(int i=1;i<=n;i++)
	{
		if(used[a[i]] || fa[a[i]]!=0) continue;
		
		used[a[i]]=true;
		for(int j=0;j<g[a[i]].size();j++)
			fa[g[a[i]][j]]--;
		
	//	cout<<"yes"<<endl;
//		cout<<s.substr(a[i],1);
		dfs(k+1,ans+s.substr(a[i],1));
		
		used[a[i]]=false;
		for(int j=0;j<g[a[i]].size();j++)
			fa[g[a[i]][j]]++;
	}
}

int main()
{
	while(getline(cin,str))
	{
		strcpy(c,str.c_str());
		init();
		
		for(int i=0;i<strlen(c);i+=2)
			a[++n]=c[i]-'a'+1;
		sort(a+1,a+n+1);
		
		getline(cin,str);
		strcpy(c,str.c_str());
		for(int i=0;i<strlen(c);i+=4)
		{
		    //i i+2
		    int x=c[i]-'a'+1;
		    int y=c[i+2]-'a'+1;
		    g[x].push_back(y);
		    fa[y]++;//son[x]++;
		}
		
	/*	for(int i=1;i<=n;i++)
		{
			cout<<a[i]<<":";
			for(int j=0;j<g[a[i]].size();j++)
			cout<<g[a[i]][j]<<" ";
			cout<<endl;
		}
		cout<<"-----------"<<endl;*/
		dfs(1,"");
		printf("\n");
	}
	return 0;
}


Output:
1
2
3
4
5
6
7
cc1plus: warnings being treated as errors
In function 'void dfs(int, std::string)':
Line 55: warning: comparison between signed and unsigned integer expressions
Line 63: warning: comparison between signed and unsigned integer expressions
In function 'int main()':
Line 75: warning: comparison between signed and unsigned integer expressions
Line 81: warning: comparison between signed and unsigned integer expressions


Create a new paste based on this one


Comments: