Submission #4060956


Source Code Expand

#pragma once
#include <sstream>
#include <string>
#include <vector>
#include <map>
#include <algorithm>
#include <iostream>
#include <utility>
#include <set>
#include <cctype>
#include <queue>
#include <stack>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <deque>
#include <numeric>
#include <iomanip>
#define M_PI acos(-1)
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
const int INF = 1000000007;
const int MAX_V = 201;
int now = 0;
int deco[1000];

int st[30][100000];
ll dp[52][2510];
const int MAX = 510000;
const int MOD = 1000000007;

long long fac[MAX], finv[MAX], inv[MAX];

// テーブルを作る前処理
void COMinit() {
	fac[0] = fac[1] = 1;
	finv[0] = finv[1] = 1;
	inv[1] = 1;
	for (int i = 2; i < MAX; i++) {
		fac[i] = fac[i - 1] * i % MOD;
		inv[i] = MOD - inv[MOD%i] * (MOD / i) % MOD;
		finv[i] = finv[i - 1] * inv[i] % MOD;
	}
}

// 二項係数計算
long long COM(int n, int k) {
	if (n < k) return 0;
	if (n < 0 || k < 0) return 0;
	return fac[n] * (finv[k] * finv[n - k] % MOD) % MOD;
}
int B[30];
int t[100010];
struct edge {
	int t;
	ll cost;
	edge(int _t, ll _cost) : t(_t)
		, cost(_cost) {
	}
};
int table[15][15];
ll h;

int ct[15];
bool memo[15][15][15];
string format(int val) {
	ostringstream sout;
	sout << std::setfill('0') << setw(2) << val;
	return sout.str();
}
int ng[3];
bool check(int nm) {
	if (ng[0] == nm || ng[2] == nm || ng[1] == nm) return false;
	return true;
}
int f(int v) {
	if (v % 2 == 0) {
		return v / 2;
	}
	else return 3 * v + 1;
}
bool use[105];
int n, k;
string orgs;
int check(string s, int ci, char c) {

	int best = 1000;
	int res = -1;
	for (int i = 0; i < n; i++)
	{

		if (s[i] == c) {
			string s2 = s;
			swap(s2[ci], s2[i]);
			int count = 0;
			for (size_t j = 0; j < n; j++)
			{
				if (s2[j] != orgs[j]) count++;
			}
			if (count > k)continue;
			if (s2 > s) continue;
			if (best > count) {
				best = count;
				res = i;
			}
		}
	}
	return res;
}

void Solve() {
	cin >> n >> k;
	string s;
	cin >> s;
	orgs = s;
	string s2 = s;
	string os = s;

	sort(os.begin(), os.end());

	for (size_t i = 0; i < n; i++)
	{
		int ch = s[i];

		int idx = -1;
		for (size_t j = 0; j < n; j++)
		{
			if (use[j]) continue;
			if (os[j] > ch) break;
			int pos = check(s, i, os[j]);
			if (pos < 0) continue;
			idx = pos;
			use[j] = true;
			break;
		}
		if(idx >= 0)
			swap(s[i], s[idx]);
	}
	cout << s << endl;

}
int main() {
	Solve();
	return 0;
}

Submission Info

Submission Time
Task C - 辞書式順序ふたたび
User moxn_nxom
Language C++14 (GCC 5.4.1)
Score 100
Code Size 2605 Byte
Status AC
Exec Time 5 ms
Memory 256 KB

Compile Error

./Main.cpp:1:9: warning: #pragma once in main file
 #pragma once
         ^
./Main.cpp:19:0: warning: "M_PI" redefined
 #define M_PI acos(-1)
 ^
In file included from /usr/include/c++/5/cmath:44:0,
                 from ./Main.cpp:15:
/usr/include/math.h:372:0: note: this is the location of the previous definition
 # define M_PI  3.14159265358979323846 /* pi */
 ^

Judge Result

Set Name All
Score / Max Score 100 / 100
Status
AC × 58
Set Name Test Cases
All hand_1_0.txt, hand_1_1.txt, hand_1_2.txt, hand_1_3.txt, hand_1_4.txt, hand_1_5.txt, hand_1_6.txt, hand_1_7.txt, hand_1_8.txt, hand_2_0.txt, hand_2_1.txt, hand_2_10.txt, hand_2_2.txt, hand_2_3.txt, hand_2_4.txt, hand_2_5.txt, hand_2_6.txt, hand_2_7.txt, hand_2_8.txt, hand_2_9.txt, hand_3_2.txt, hand_3_3.txt, hand_3_4.txt, hand_3_5.txt, hand_3_6.txt, hand_4_2.txt, hand_4_3.txt, hand_4_4.txt, hand_4_5.txt, hand_4_6.txt, random_1.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt, random_15.txt, random_2.txt, random_3.txt, random_4.txt, random_5.txt, random_6.txt, random_7.txt, random_8.txt, random_9.txt, sample_1.txt, sample_2.txt, sample_3.txt, sample_4.txt, small_1.txt, small_2.txt, small_3.txt, small_4.txt, small_5.txt, small_6.txt, small_7.txt, small_8.txt, small_9.txt
Case Name Status Exec Time Memory
hand_1_0.txt AC 1 ms 256 KB
hand_1_1.txt AC 1 ms 256 KB
hand_1_2.txt AC 1 ms 256 KB
hand_1_3.txt AC 1 ms 256 KB
hand_1_4.txt AC 1 ms 256 KB
hand_1_5.txt AC 1 ms 256 KB
hand_1_6.txt AC 1 ms 256 KB
hand_1_7.txt AC 1 ms 256 KB
hand_1_8.txt AC 1 ms 256 KB
hand_2_0.txt AC 1 ms 256 KB
hand_2_1.txt AC 1 ms 256 KB
hand_2_10.txt AC 1 ms 256 KB
hand_2_2.txt AC 1 ms 256 KB
hand_2_3.txt AC 1 ms 256 KB
hand_2_4.txt AC 1 ms 256 KB
hand_2_5.txt AC 1 ms 256 KB
hand_2_6.txt AC 1 ms 256 KB
hand_2_7.txt AC 1 ms 256 KB
hand_2_8.txt AC 1 ms 256 KB
hand_2_9.txt AC 1 ms 256 KB
hand_3_2.txt AC 1 ms 256 KB
hand_3_3.txt AC 1 ms 256 KB
hand_3_4.txt AC 1 ms 256 KB
hand_3_5.txt AC 1 ms 256 KB
hand_3_6.txt AC 1 ms 256 KB
hand_4_2.txt AC 1 ms 256 KB
hand_4_3.txt AC 1 ms 256 KB
hand_4_4.txt AC 1 ms 256 KB
hand_4_5.txt AC 1 ms 256 KB
hand_4_6.txt AC 1 ms 256 KB
random_1.txt AC 1 ms 256 KB
random_10.txt AC 4 ms 256 KB
random_11.txt AC 3 ms 256 KB
random_12.txt AC 3 ms 256 KB
random_13.txt AC 2 ms 256 KB
random_14.txt AC 2 ms 256 KB
random_15.txt AC 1 ms 256 KB
random_2.txt AC 1 ms 256 KB
random_3.txt AC 1 ms 256 KB
random_4.txt AC 2 ms 256 KB
random_5.txt AC 1 ms 256 KB
random_6.txt AC 2 ms 256 KB
random_7.txt AC 4 ms 256 KB
random_8.txt AC 5 ms 256 KB
random_9.txt AC 4 ms 256 KB
sample_1.txt AC 1 ms 256 KB
sample_2.txt AC 1 ms 256 KB
sample_3.txt AC 1 ms 256 KB
sample_4.txt AC 1 ms 256 KB
small_1.txt AC 1 ms 256 KB
small_2.txt AC 1 ms 256 KB
small_3.txt AC 1 ms 256 KB
small_4.txt AC 1 ms 256 KB
small_5.txt AC 1 ms 256 KB
small_6.txt AC 1 ms 256 KB
small_7.txt AC 1 ms 256 KB
small_8.txt AC 1 ms 256 KB
small_9.txt AC 1 ms 256 KB