How to provide new test to hack solutions after contest?

Правка en4, от zhangky, 2021-06-21 16:42:36

I solve a problem1538E — Funny Substrings. But I found a new test to hack myself. The hack test is :

input 1 4 a := h b := ahaabc c = b + a d = a + c

output 1

But my code output 0. I want provide these test but I don't know how to provide my test.

My submissions id is 120211661. There is my code.

#include<cstdio>
#include<algorithm>
#include<iostream>
#include<string>
#include<map>
#include<cstring>
#define int long long

using namespace std;

struct Node{
	int val;
	string pre,suf;
	Node(string _s="")
	{
		val=0;
        int len=min((int)_s.size(),3ll);
		if(_s.size()!=0)pre=_s.substr(0ll,len); 
		if(_s.size()!=0)suf=_s.substr(max((int)_s.size()-3,0ll),len);
		for(int i=0;i<=(int)(_s.size()-4ll);i++)
		{
			if(_s.substr(i,4)=="haha") 
			++val;
		}
	}
	friend Node operator + (Node a,Node b)
	{
		Node ret=Node();
		if(a.pre.size()<3||b.pre.size()<3)
		{
			ret=Node(a.suf+b.pre);
			ret.val+=a.val+b.val;
		}
		else
		{
			ret.pre=a.pre;ret.suf=b.suf;
			ret.val=a.val+b.val+Node(a.suf+b.pre).val;
		}
		return ret;
	}
	
};

int t,n;

signed main()
{
	// freopen("in.txt", "r", stdin);
	cin>>t;
	while(t--)
	{
		cin>>n;
		map<string,Node>mp;
		string last;
		while(n--)
		{
			string x,opt;
			cin>>x>>opt;
			last=x;
			if(opt==":=")
			{
				string s;
				cin>>s;
				mp[x]=Node(s);
			}
			else
			{
				string s1,s2;
				cin>>s1>>s2>>s2;
				mp[x]=mp[s1]+mp[s2];
			}
		}
		cout<<mp[last].val<<'\n';
	}
	return 0;
}
Теги #hack

История

 
 
 
 
Правки
 
 
  Rev. Язык Кто Когда Δ Комментарий
en8 Английский zhangky 2021-06-21 16:44:24 0 (published)
en7 Английский zhangky 2021-06-21 16:43:50 30
en6 Английский zhangky 2021-06-21 16:43:30 22
en5 Английский zhangky 2021-06-21 16:42:56 18
en4 Английский zhangky 2021-06-21 16:42:36 10
en3 Английский zhangky 2021-06-21 16:42:11 14
en2 Английский zhangky 2021-06-21 16:41:47 4
en1 Английский zhangky 2021-06-21 16:41:14 1604 Initial revision (saved to drafts)