Submission #341343

# Submission time Handle Problem Language Result Execution time Memory
341343 2020-12-29T14:04:06 Z hackxsaras Miners (IOI07_miners) C++14
68 / 100
1500 ms 524292 KB
#include <bits/stdc++.h>
using namespace std;

#define ll long long
#define pb push_back
int n;
string s;
map<pair<int, pair<deque<char>, deque<char>>>, int> dp;
int recurse(int index, deque<char> a, deque<char> b){
	
	if(index == n)return 0;

	if(dp[{index, {a, b}}])return dp[{index, {a, b}}];

	set<int> sa, sb;

	for(int i=0;i<a.size();i++)sa.insert(a[i]);
	for(int i=0;i<b.size();i++)sb.insert(b[i]);

	deque<char> qa = a, qb = b;

	if(qa.size() == 2)qa.pop_front();
	if(qb.size() == 2)qb.pop_front();
	
	qa.pb(s[index]);
	qb.pb(s[index]);
	sa.insert(s[index]);
	sb.insert(s[index]);


	return dp[{index, {a, b}}] = max(sa.size() + recurse(index+1, qa, b) , sb.size() + recurse(index+1, a, qb));
}
void solve(){
	cin >> n;
	cin >> s;
	deque<char> ep;
	cout<<recurse(0, ep, ep);
}

int main(){
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);

	int t = 1;
	
	// cin>>t;
	
	while(t--){
		solve();
	}

	return 0;
}

Compilation message

miners.cpp: In function 'int recurse(int, std::deque<char>, std::deque<char>)':
miners.cpp:17:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::deque<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   17 |  for(int i=0;i<a.size();i++)sa.insert(a[i]);
      |              ~^~~~~~~~~
miners.cpp:18:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::deque<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   18 |  for(int i=0;i<b.size();i++)sb.insert(b[i]);
      |              ~^~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 492 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 876 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 748 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 3 ms 1004 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 876 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 876 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 204 ms 51308 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 543 ms 143340 KB Output is correct
# Verdict Execution time Memory Grader output
1 Execution timed out 1617 ms 461676 KB Time limit exceeded
# Verdict Execution time Memory Grader output
1 Execution timed out 1593 ms 513900 KB Time limit exceeded
# Verdict Execution time Memory Grader output
1 Runtime error 827 ms 524292 KB Execution killed with signal 9 (could be triggered by violating memory limits)
# Verdict Execution time Memory Grader output
1 Runtime error 397 ms 524292 KB Execution killed with signal 9 (could be triggered by violating memory limits)