結果

問題 No.326 あみだますたー
ユーザー kapokapo
提出日時 2016-05-06 15:46:56
言語 C++11
(gcc 11.4.0)
結果
WA  
実行時間 -
コード長 903 bytes
コンパイル時間 149 ms
コンパイル使用メモリ 24,064 KB
実行使用メモリ 6,948 KB
最終ジャッジ日時 2024-04-15 13:30:49
合計ジャッジ時間 3,904 ms
ジャッジサーバーID
(参考情報)
judge3 / judge1
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 1 ms
6,816 KB
testcase_01 WA -
testcase_02 WA -
testcase_03 WA -
testcase_04 WA -
testcase_05 AC 0 ms
6,944 KB
testcase_06 WA -
testcase_07 AC 1 ms
6,944 KB
testcase_08 AC 2 ms
6,944 KB
testcase_09 WA -
testcase_10 AC 3 ms
6,940 KB
testcase_11 WA -
testcase_12 WA -
testcase_13 WA -
testcase_14 WA -
testcase_15 WA -
testcase_16 WA -
testcase_17 WA -
testcase_18 WA -
testcase_19 WA -
testcase_20 WA -
testcase_21 WA -
testcase_22 WA -
testcase_23 WA -
testcase_24 WA -
testcase_25 WA -
testcase_26 WA -
testcase_27 WA -
権限があれば一括ダウンロードができます
コンパイルメッセージ
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