Submission #3589805


Source Code Expand

#include <iostream>
#include <fstream>
#include <cmath>  
#include <cstdlib>
#include <ctime>
#include <algorithm>
#include <numeric>
#include <functional>
#include <string> 
#include <vector>
#include <bitset>
#include <map>
#include <set>
#include <stack>
#include <queue>
#include <deque>

using namespace std;
using ll = long long;

template<class T> using V = vector<T>;
template<class T, class U> using P = pair<T, U>;

#define REP(i,n) for(int i = 0; i < int(n); i++)
#define FOR(i, m, n) for(int i = int(m);i < int(n);i++)
#define ALL(obj) (obj).begin(),(obj).end()

const ll MOD = (ll)1e9 + 7;
const ll HINF = (ll)1e18;
const ll LINF = (ll)1e9;
const long double PI = 3.1415926535897932384626433;

vector<int> dy = { 0,0,1,-1 };
vector<int> dx = { 1,-1,0,0 };

template<class T> void corner(bool flg, T hoge) {
	if (flg) {
		cout << hoge << endl;
		exit(0);
	}
	else return;
}

template <class T, class U>ostream &operator<<(ostream &o, const map<T, U>&obj) {
	o << "{"; for (auto &x : obj) o << " {" << x.first << " : " << x.second << "}" << ","; o << " }"; return o;
}

template <class T>ostream &operator<<(ostream &o, const set<T>&obj) {
	o << "{"; for (auto itr = obj.begin(); itr != obj.end(); ++itr) o << (itr != obj.begin() ? ", " : "") << *itr; o << "}"; return o;
}

template <class T>ostream &operator<<(ostream &o, const vector<T>&obj) {
	o << "{"; for (int i = 0; i < (int)obj.size(); ++i)o << (i > 0 ? ", " : "") << obj[i]; o << "}"; return o;
}

template <class T, class U>ostream &operator<<(ostream &o, const pair<T, U>&obj) {
	o << "{" << obj.first << ", " << obj.second << "}"; return o;
}

template <template <class tmp>  class T, class U> ostream &operator<<(ostream &o, const T<U> &obj) {
	o << "{"; for (auto itr = obj.begin(); itr != obj.end(); ++itr)o << (itr != obj.begin() ? ", " : "") << *itr; o << "}"; return o;
}

void print(void) {
	cout << endl;
}

template <class Head> void print(Head&& head) {
	cout << head;
	print();
}

template <class Head, class... Tail> void print(Head&& head, Tail&&... tail) {
	cout << head << " ";
	print(forward<Tail>(tail)...);
}

void YN(bool flg) {
	cout << ((flg) ? "YES" : "NO") << endl;
}

void Yn(bool flg) {
	cout << ((flg) ? "Yes" : "No") << endl;
}

void yn(bool flg) {
	cout << ((flg) ? "yes" : "no") << endl;
}


int main() {
	string s; cin >> s;
	s = "." + s + ".";

	int N = s.size();

	V<V< int >> edge(N, V< int >(26, LINF));
	V<P<int, string>> dp(N, { LINF,"" });

	int idx;
	REP(i,26){
		char ch = char(int(i + 'a'));
		idx = N-1;
		for (int j = N-2; 0 <= j; --j) {
			edge[j][i] = idx;
			if (s[j] == ch)idx = j;
		}
	}

	dp[0] = { 0,"" };

	REP(i,N-1){
		REP(j,26){
			int cnt = dp[i].first+1;
			char ch = char(int(j + 'a'));
			string str = dp[i].second;
			str.push_back(ch);
			int to = edge[i][j];
			if ((cnt < dp[to].first) || (cnt == dp[to].first && str < dp[to].second)) {
				dp[to].first = cnt;
				dp[to].second = str;
			}
		}
	}

	cout << dp[N-1].second << endl;
	return 0;
}

Submission Info

Submission Time
Task E - Don't Be a Subsequence
User ningenMe
Language C++14 (GCC 5.4.1)
Score 0
Code Size 3111 Byte
Status MLE
Exec Time 1931 ms
Memory 1115456 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 600
Status
AC × 3
AC × 19
MLE × 17
Set Name Test Cases
Sample sample1.txt, sample2.txt, sample3.txt
All sample1.txt, sample2.txt, sample3.txt, 1.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 2.txt, 20.txt, 21.txt, 22.txt, 23.txt, 24.txt, 25.txt, 26.txt, 27.txt, 28.txt, 29.txt, 3.txt, 30.txt, 4.txt, 5.txt, 6.txt, 7.txt, 8.txt, 9.txt, sample1.txt, sample2.txt, sample3.txt
Case Name Status Exec Time Memory
1.txt AC 1 ms 256 KB
10.txt MLE 826 ms 355264 KB
11.txt MLE 823 ms 353856 KB
12.txt MLE 819 ms 347328 KB
13.txt MLE 824 ms 352576 KB
14.txt MLE 822 ms 348224 KB
15.txt MLE 824 ms 351552 KB
16.txt MLE 824 ms 353216 KB
17.txt MLE 1053 ms 587968 KB
18.txt MLE 1151 ms 675904 KB
19.txt MLE 1420 ms 873024 KB
2.txt AC 3 ms 512 KB
20.txt MLE 1931 ms 1072192 KB
21.txt MLE 1835 ms 1092160 KB
22.txt MLE 1856 ms 1104320 KB
23.txt MLE 1905 ms 1115456 KB
24.txt AC 626 ms 142912 KB
25.txt AC 492 ms 57792 KB
26.txt AC 574 ms 97216 KB
27.txt AC 520 ms 65472 KB
28.txt AC 528 ms 71616 KB
29.txt AC 636 ms 145216 KB
3.txt AC 23 ms 2944 KB
30.txt AC 634 ms 144704 KB
4.txt AC 23 ms 2944 KB
5.txt AC 423 ms 97660 KB
6.txt AC 319 ms 97916 KB
7.txt MLE 835 ms 360128 KB
8.txt MLE 820 ms 352064 KB
9.txt MLE 887 ms 355648 KB
sample1.txt AC 1 ms 256 KB
sample2.txt AC 1 ms 256 KB
sample3.txt AC 2 ms 256 KB