Submission #175234


Source Code Expand

//交換が一番文字の位置をずらさない方法である。
//あ、でも交換の後に並び替えないとWAするかも…
//最適な並べ替えをカウント前に行おう!!
#include<iostream>
#include<string.h>
#define rep(i,n) for(i = 0;i < n;i++)
#define repn(i,m,n) for(i = m;i < n;i++)
using namespace std;

int N,K;
char S[104],C[104];
char A[104];

void Memcpy( char *DIST,char *SRC,int N ){
	int i;
	rep(i,N){
		DIST[i] = SRC[i];
	}
}
int main(){
	int i,j,k,l;
	cin >> N >> K;
	cin >> S;
	rep( i,N ){
		A[i] = S[i];
	}
	rep( i,N )
	{
		char MIN = A[i];
		repn( j,i+1,N ){
			if( A[j] >= MIN )
				continue;
			//メモする
			Memcpy( C,A,N );
			//交換する
			//cout << A[pos] << " " << A[i] << endl;
			swap( A[j],A[i] );
			//i+1文字目から先をAとできるだけ一致するように貪欲に並び替え
			repn( k,i+1,N ){
				if( S[k] == A[k] )
					continue;
				repn(l,k+1,N ){
					if( A[l] == S[k] )
						swap( A[l],A[k] );
				}
			}
			//違う位置の文字を数えて、Kを超えたらもとに戻す
			int num = 0;
			rep(k,N){
				if( A[k] != S[k] )
					num++;
			}
			if( num > K ){
				Memcpy( A,C,N );
			}
			else{
				MIN = A[i];
			}
		}
	}
	cout << A << endl;
	return 0;
}

Submission Info

Submission Time
Task C - 辞書式順序ふたたび
User startcpp
Language C++ (G++ 4.6.4)
Score 0
Code Size 1306 Byte
Status WA
Exec Time 25 ms
Memory 928 KB

Judge Result

Set Name All
Score / Max Score 0 / 100
Status
AC × 43
WA × 11
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, 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 21 ms 736 KB
hand_1_1.txt AC 21 ms 920 KB
hand_1_2.txt AC 21 ms 800 KB
hand_1_3.txt AC 20 ms 744 KB
hand_1_4.txt AC 20 ms 796 KB
hand_1_5.txt AC 20 ms 796 KB
hand_1_6.txt AC 20 ms 672 KB
hand_1_7.txt AC 20 ms 800 KB
hand_1_8.txt AC 20 ms 672 KB
hand_2_0.txt AC 21 ms 804 KB
hand_2_1.txt AC 20 ms 808 KB
hand_2_10.txt AC 20 ms 672 KB
hand_2_2.txt AC 20 ms 800 KB
hand_2_3.txt AC 20 ms 808 KB
hand_2_4.txt AC 20 ms 924 KB
hand_2_5.txt AC 20 ms 920 KB
hand_2_6.txt AC 20 ms 800 KB
hand_2_7.txt AC 20 ms 928 KB
hand_2_8.txt AC 20 ms 796 KB
hand_2_9.txt AC 20 ms 792 KB
hand_3_2.txt AC 20 ms 920 KB
hand_3_3.txt AC 21 ms 800 KB
hand_3_4.txt AC 20 ms 800 KB
hand_3_5.txt AC 20 ms 804 KB
hand_3_6.txt AC 20 ms 796 KB
hand_4_2.txt AC 21 ms 804 KB
hand_4_3.txt AC 20 ms 676 KB
hand_4_4.txt AC 20 ms 796 KB
hand_4_5.txt AC 20 ms 672 KB
hand_4_6.txt AC 21 ms 924 KB
random_1.txt WA 21 ms 804 KB
random_10.txt WA 23 ms 800 KB
random_11.txt WA 22 ms 924 KB
random_12.txt WA 23 ms 796 KB
random_13.txt AC 22 ms 804 KB
random_14.txt WA 20 ms 796 KB
random_15.txt AC 20 ms 796 KB
random_2.txt WA 20 ms 784 KB
random_3.txt WA 20 ms 800 KB
random_4.txt WA 22 ms 800 KB
random_5.txt AC 21 ms 792 KB
random_6.txt WA 23 ms 804 KB
random_7.txt WA 23 ms 804 KB
random_8.txt AC 22 ms 796 KB
random_9.txt WA 23 ms 764 KB
sample_1.txt AC 23 ms 800 KB
sample_2.txt AC 23 ms 744 KB
sample_3.txt AC 25 ms 800 KB
sample_4.txt AC 24 ms 676 KB
small_1.txt AC 25 ms 804 KB
small_2.txt AC 23 ms 800 KB
small_3.txt AC 20 ms 924 KB
small_4.txt AC 23 ms 796 KB
small_5.txt AC 20 ms 796 KB
small_6.txt AC 20 ms 800 KB
small_7.txt AC 20 ms 920 KB
small_8.txt AC 21 ms 920 KB
small_9.txt AC 21 ms 924 KB