Submission #259429


Source Code Expand

#include <vector>
#include <list>
#include <map>
#include <set>
#include <deque>
#include <stack>
#include <bitset>
#include <iterator>
#include <complex>
#include <valarray>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <cctype>
#include <string>
#include <cstring>
#include <ctime>


using namespace std;

#define ALL(g) (g).begin(),(g).end()
#define repx(i, x, n) for(int i = (x); i < (n); i++)
#define rep(i, n) repx(i,0,n)
#define F(i, j, k) fill(i[0] , i[0] + j * j , k)
#define EXIST(s, e) ((s).find(e) != (s).end())
#define INF INT_MAX
#define type_sp template<>
#define type(T) template<class T>
#define type2(T, F) template<class T, class F>
#define type3(T, F, G) template<class T, class F, class G>
#define pb push_back
#define mp make_pair
#define mset(m, v) memset(m, v, sizeof(m))
#define SAFED_SCOPE(i, v) for(int _____SCOPE##i = 0; _____SCOPE##i == 0;)for(aut(i, v); _____SCOPE##i == 0; _____SCOPE##i++)
#define each(i, v) SAFED_SCOPE(_____EACH##i, v) for(aut(i, _____EACH##i.begin()); i != _____EACH##i.end(); i++)
#if defined(_MSC_VER) || __cplusplus > 199711L
#define aut(r, v) auto r = (v)
#else
#define aut(r,v) typeof(v) r = (v)
#endif

typedef long long llong;
typedef unsigned int uint;
typedef unsigned long long ullong; 
typedef vector<int> vi;
typedef vector<llong> vl;
typedef vector<double> vd;
typedef vector<string> vs;
typedef pair<int,int> pii;
typedef pair<llong,llong> pll;
typedef pair<double,double> pdd;
typedef pair<string,string> pss;
vs split(string haystack,string needle=" "){vs v;string::size_type index=0,index2=0;while((index2=haystack.find(needle,index))!=string::npos){ v.pb(haystack.substr(index,index2-index));index=index2+needle.length();}v.pb(haystack.substr(index,haystack.length()-index));return v;}
type(T) T parce(string s) {T v; istringstream stin(s);stin>>v;return v;}
type(T) string str(T v){ostringstream stout;stout<<v;return stout.str();}
string readln(){string v;getline(cin,v);return v;}
type(T) T read(){T v;cin>>v;return v;}
type(T) T readln_as(){return parce<T>(readln());}
type(T) vector<T> readln_parce(){vector<T> v;vs s=split(readln()," ");each(i,s){v.pb(parce<T>(*i));}return v;}
void writedbl(double v){string ss="";printf("%-lf",v);}
void writedbl(double v,int k){string ss="";printf((ss+"%-."+str(k)+"lf").c_str(),v);}
type(T) void write(T v){cout << v;}
type_sp void write(double v){writedbl(v);}
type(T) void writeln(T v){cout << v << endl;}
void writeln(){cout << endl;}


//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
string s1;
string s2;
string s3;
int size;

map<char,int> w1;
map<char,int> w2;
map<char,int> w3;

bool solve(int nth,int rest1,int rest2){
	if(size-1==nth){
		if(rest1>0){
			if(s1.find_first_of(s3[nth])!=string::npos)
				return true;
		}else if(rest2>0){
			if(s2.find_first_of(s3[nth])!=string::npos)
				return true;
		}
	}else{
		if(rest1>0){
			int p=s1.find_first_of(s3[nth],size/2-rest1);
			if(p!=string::npos){
				if(p!=size/2-rest1){
					char c=s1[size/2-rest1];
					s1[size/2-rest1]='0';
					s1[p]=c;
				}else{
					s1[p]='0';
				}
				if(solve(nth+1,rest1-1,rest2))
					return true;
				else
					if(p!=size/2-rest1){
						char c2=s1[p];
						s1[size/2-rest1]=c2;
						s1[p]=s3[nth];
					}else{
						s1[p]='0';
					}
			}
		}
		if(rest2>0){
			int p=s2.find_first_of(s3[nth],size/2-rest2);
			if(p!=string::npos){
				if(p!=size/2-rest2){
					char c=s2[size/2-rest2];
					s2[size/2-rest2]='0';
					s2[p]=c;
				}else{
					s2[p]='0';
				}
				if(solve(nth+1,rest1,rest2-1))
					return true;
				else
					if(p!=size/2-rest2){
						char c2=s2[p];
						s2[size/2-rest2]=c2;
						s2[p]=s3[nth];
					}else{
						s2[p]='0';
					}
			}
		}
	}
	return false;
}


void mymain(void){

	s1=readln();
	size=s1.size();
	s2.resize(size);
	s3.resize(size);

	getline(cin,s2);
	getline(cin,s3);

	bool answer=false;

	answer=solve(0,size/2,size/2);

	

	if(answer)
		writeln("YES");
	else
		writeln("NO");

}


int main(void){

	mymain();
	return 0;

}

Submission Info

Submission Time
Task C - 錬金術士
User BlackLemon
Language C++ (G++ 4.6.4)
Score 0
Code Size 4498 Byte
Status TLE
Exec Time 2040 ms
Memory 8940 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 100
Status
AC × 2
AC × 24
TLE × 14
Set Name Test Cases
Sample sample_01.txt, sample_02.txt
All subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask2_09.txt, subtask2_10.txt, subtask2_11.txt, subtask2_12.txt, subtask2_13.txt, subtask2_14.txt, subtask2_15.txt, subtask2_16.txt, subtask2_17.txt, subtask2_18.txt, subtask2_19.txt
Case Name Status Exec Time Memory
sample_01.txt AC 64 ms 932 KiB
sample_02.txt AC 25 ms 1004 KiB
subtask1_01.txt AC 150 ms 7380 KiB
subtask1_02.txt AC 27 ms 1488 KiB
subtask1_03.txt AC 213 ms 8940 KiB
subtask1_04.txt AC 126 ms 6612 KiB
subtask1_05.txt AC 162 ms 7644 KiB
subtask1_06.txt AC 55 ms 4072 KiB
subtask1_07.txt AC 113 ms 6252 KiB
subtask1_08.txt AC 42 ms 3152 KiB
subtask1_09.txt AC 57 ms 4304 KiB
subtask1_10.txt AC 89 ms 5456 KiB
subtask1_11.txt AC 114 ms 6392 KiB
subtask1_12.txt AC 178 ms 8016 KiB
subtask1_13.txt AC 60 ms 4592 KiB
subtask1_14.txt AC 94 ms 5584 KiB
subtask1_15.txt AC 180 ms 8148 KiB
subtask1_16.txt AC 35 ms 2504 KiB
subtask1_17.txt AC 31 ms 2088 KiB
subtask1_18.txt AC 90 ms 5488 KiB
subtask1_19.txt AC 56 ms 4308 KiB
subtask2_01.txt TLE 2031 ms 1004 KiB
subtask2_02.txt AC 26 ms 976 KiB
subtask2_03.txt TLE 2033 ms 1104 KiB
subtask2_04.txt TLE 2040 ms 1108 KiB
subtask2_05.txt TLE 2032 ms 980 KiB
subtask2_06.txt TLE 2034 ms 1060 KiB
subtask2_07.txt AC 25 ms 924 KiB
subtask2_08.txt TLE 2033 ms 1000 KiB
subtask2_09.txt TLE 2032 ms 1008 KiB
subtask2_10.txt AC 1324 ms 856 KiB
subtask2_11.txt TLE 2032 ms 1104 KiB
subtask2_12.txt TLE 2034 ms 1064 KiB
subtask2_13.txt TLE 2034 ms 996 KiB
subtask2_14.txt TLE 2033 ms 1056 KiB
subtask2_15.txt AC 30 ms 1044 KiB
subtask2_16.txt AC 28 ms 860 KiB
subtask2_17.txt TLE 2032 ms 1008 KiB
subtask2_18.txt TLE 2033 ms 976 KiB
subtask2_19.txt TLE 2033 ms 984 KiB