結果
| 問題 | 
                            No.326 あみだますたー
                             | 
                    
| コンテスト | |
| ユーザー | 
                             | 
                    
| 提出日時 | 2016-06-28 18:12:01 | 
| 言語 | C90  (gcc 12.3.0)  | 
                    
| 結果 | 
                             
                                WA
                                 
                             
                            
                         | 
                    
| 実行時間 | - | 
| コード長 | 1,392 bytes | 
| コンパイル時間 | 130 ms | 
| コンパイル使用メモリ | 21,760 KB | 
| 実行使用メモリ | 6,824 KB | 
| 最終ジャッジ日時 | 2024-10-11 23:29:53 | 
| 合計ジャッジ時間 | 5,211 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge4 / judge3 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | WA * 2 | 
| other | AC * 3 WA * 17 RE * 6 | 
コンパイルメッセージ
main.c: In function ‘main’:
main.c:44:5: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
   44 |     scanf("%d",&N);
      |     ^~~~~~~~~~~~~~
main.c:45:5: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
   45 |     scanf("%d",&K);
      |     ^~~~~~~~~~~~~~
main.c:49:17: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
   49 |         int a,b;scanf("%d %d",&a,&b);
      |                 ^~~~~~~~~~~~~~~~~~~~
main.c:57:9: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
   57 |         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],amida[tpos]);
                amida[i] =  amida[tpos];
                amida[tpos] = tmp;
                int l,r;
                if (i>tpos){l = tpos;r=i;}else{l=i;r=tpos;}
                for (j=l;j<r;j++){
                    ans[anss] = j;
                    anss++;
                }
                for (j=r;j>l;j--){
                    ans[anss] = 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;
}