結果

問題 No.326 あみだますたー
ユーザー kapo
提出日時 2016-05-06 15:46:56
言語 C++11(廃止可能性あり)
(gcc 13.3.0)
結果
WA  
実行時間 -
コード長 903 bytes
コンパイル時間 217 ms
コンパイル使用メモリ 23,936 KB
実行使用メモリ 6,820 KB
最終ジャッジ日時 2024-10-05 10:07:56
合計ジャッジ時間 3,946 ms
ジャッジサーバーID
(参考情報)
judge5 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample WA * 2
other AC * 5 WA * 21
権限があれば一括ダウンロードができます
コンパイルメッセージ
main.cpp: In function ‘int main()’:
main.cpp:24:14: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
   24 |         scanf("%d %d", &n, &k);
      |         ~~~~~^~~~~~~~~~~~~~~~~
main.cpp:26:22: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
   26 |                 scanf("%d %d", &x[i], &l);
      |                 ~~~~~^~~~~~~~~~~~~~~~~~~~
main.cpp:29:22: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
   29 |                 scanf("%d", &a[i]);
      |                 ~~~~~^~~~~~~~~~~~~

ソースコード

diff #

#include <stdio.h>

int a[101], b[101];

void change(int &a, int &b)
{
	int c = a;
	a = b;
	b = c;
}

int soeji(int n, int size)
{
	int i;
	for( i = 0; i < size; i++) {
		if( a[n] == b[i] ) return i;
	}
	return 0;
}

int main(void)
{
	int i, j, n, k, x[6000], l, c[6000];
	scanf("%d %d", &n, &k);
	for( i = 0; i < k; i++) {
		scanf("%d %d", &x[i], &l);
	}
	for( i = 0; i < n; i++) {
		scanf("%d", &a[i]);
	}

	for( i = 0; i <= n; i++) {
		int pass = 0, l = i+1;
		for( j = 0; j < k; j++) {
			if( x[j] == l ) {
				l++;
			} else if ( x[j]+1 == l ) {
				l--;
			}
		}
		b[i] = l;
	}
	
	int path = 0;
	for( i = 0; i < n-1; i++) {
		if( a[i] != b[i] ) {
			int r = soeji(i, n);
			while( r > i ) {
				c[path] = i + (r-i) -1;
				change( b[c[path]], b[c[path]+1] );
				path++;
				r--;
			}
		}
	}
	printf("%d\n",path);
	for( i = 0; i < path; i++) {
		printf("%d %d\n",c[i]+1 ,c[i]+2 );
	}

	return 0;
}
0