結果
| 問題 |
No.326 あみだますたー
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2016-06-28 18:45:22 |
| 言語 | C90 (gcc 12.3.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,525 bytes |
| コンパイル時間 | 280 ms |
| コンパイル使用メモリ | 21,760 KB |
| 実行使用メモリ | 10,496 KB |
| 最終ジャッジ日時 | 2024-10-11 22:38:28 |
| 合計ジャッジ時間 | 5,065 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | -- * 2 |
| other | AC * 3 WA * 4 RE * 2 TLE * 1 -- * 16 |
コンパイルメッセージ
main.c: In function ‘main’:
main.c:47:5: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
47 | scanf("%d",&N);
| ^~~~~~~~~~~~~~
main.c:48:5: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
48 | scanf("%d",&K);
| ^~~~~~~~~~~~~~
main.c:52:17: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
52 | int a,b;scanf("%d %d",&a,&b);
| ^~~~~~~~~~~~~~~~~~~~
main.c:60:9: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
60 | scanf("%d",&aa);
| ^~~~~~~~~~~~~~~
ソースコード
#include<stdio.h>
int N,K;
int amida[101];
int a[101];
int ans[6000];
int anss;
void nyrn(){
anss = 0;
int i,j;
int gpos[101];
for (i=0;i<N;i++)gpos[a[i]] = i;
while (1){
int flag = 1;
for (i=0;i<N;i++){
if (a[i] != amida[i]){
flag = 0;
int tpos = gpos[amida[i]];
int tmp = amida[i];
//printf("swap %d %d\n",amida[i]+1,amida[tpos]+1);
amida[i] = amida[tpos];
amida[tpos] = tmp;
int l,r;
if (i>tpos){l = tpos;r=i;}else{l=i;r=tpos;}
//printf("%d %d\n",l,r);
for (j=l;j<r;j++){
ans[anss] = j;
//printf(">>%d\n",j);
anss++;
}
for (j=r-2;j>l-1;j--){
ans[anss] = j;
//printf("<<%d\n",j);
anss++;
}
}
}
if (flag)break;
}
}
int main(void){
scanf("%d",&N);
scanf("%d",&K);
int i;
for (i=0;i<N;i++)amida[i] = i;
for (i=0;i<K;i++){
int a,b;scanf("%d %d",&a,&b);
a--;b--;
int tmp = amida[a];
amida[a] = amida[b];
amida[b] = tmp;
}
for (i=0;i<N;i++){
int aa;
scanf("%d",&aa);
a[i] = aa-1;
}
nyrn();
printf("%d\n",anss);
for (i=0;i<anss;i++){
printf("%d\n",ans[i]);
}
return 0;
}