Submission #175237


Source Code Expand

#include <algorithm>
#include <functional>
#include <iostream>

using namespace std;
int main()
{
	// スペース区切りの整数の入力
	int N,K;
	cin >> N >> K;
	//文字列入力
	string S;
	cin >> S;

	//char 変換
	const char *cseikai = S.c_str();
	const char *c = S.c_str();

	string ans;
	// K = 0
	if(K == 0){
		ans = string(cseikai);
		cout << ans << endl;
		return 0;
	}
	int i,j,k,l;
	int n;
	char tmp;
	int karik;
	int karij;
	bool exist;
	int nai;

	for(i = 0;i<N-1;i++){
		//ソートじゃ
		for(j = i;j<N;j++){
			for(k=j;k<N;k++){
			if(c[j] > c[k]){
				tmp = c[j]:
				c[j] = c[k];
				c[k] = tmp;
			}
		}
		karij = i;
		while(1){
			karik = K;
			

			//先頭に持ってきて交換
			tmp = c[i];
			c[i] = c[karij];
			c[karij] = tmp;		
			for(k = 0;k<i;k++){
				//一致数ぶんだけ減らす
				if(cseikai[k] == c[k]){
					karik -= 1;
				}
			}
			//残ってる数で不正解数がK以下か
			nai = 0;
			for(k = i+1;k<N;k++){
				exist = false;
				for(l = i+1;l<N;l++){
					if(c[k] == cseikai[l])
						exist = true;
				}
				if(exist == false){
					//ないならダメ
					nai++;
				}
			}
			//これで、先頭以下のない数が出てくる
			//ない数がK-1より多いだったらつくれへん
			if(nai > K){
				//やりなおし
				karij++;
			}
			else{
				break;
			}
		}
	}
	string out;
	out = c;
	// 出力
	cout << out << endl;
	return 0;
}

Submission Info

Submission Time
Task C - 辞書式順序ふたたび
User hirahira
Language C++ (G++ 4.6.4)
Score 0
Code Size 1502 Byte
Status CE

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:39:15: error: expected ‘;’ before ‘:’ token
./Main.cpp:41:12: error: assignment of read-only location ‘*(c + ((long unsigned int)((long unsigned int)k)))’
./Main.cpp:51:18: error: assignment of read-only location ‘*(c + ((long unsigned int)((long unsigned int)i)))’
./Main.cpp:52:15: error: assignment of read-only location ‘*(c + ((long unsigned int)((long unsigned int)karij)))’
./Main.cpp:88:1: error: expected ‘}’ at end of input