Cod sursa(job #240277)

Utilizator marius21Petcu Marius marius21 Data 7 ianuarie 2009 08:49:48
Problema Grozavesti Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.15 kb
#include <stdio.h>
#include <algorithm>

using namespace std;

int n,x,a[301],b[301],sw[601][1],swcnt;
FILE* f=fopen("grozavesti.in","r");
FILE* g=fopen("grozavesti.out","w");

void swap(int p1, int p2){
        swcnt++;
        int aux=a[p1];
        a[p1]=a[p2];
        a[p2]=aux;
        sw[swcnt][0]=p1;
        sw[swcnt][1]=p2;
}

int main (int argc,char* argv[]) {
        fscanf(f,"%d",&n);
        int i,j;
        for (i=1; i<=n; i++) {
                for (j=1; j<=n; j++) {
                        fscanf(f,"%d",&x);
                        if (i==j) {
                                a[i]=x;
                        }
                }
        }
       for (i=1; i<=n; i++) {
                b[i]=a[i];
       }
       sort(b+1,b+n+1);
       for (i=1; i<=n-1; i++){
                for (j=i+1; j<=n; j++){
                        if (b[i]==a[j]) {
                                swap(i,j);
                        }
                }
       }
       fprintf(g,"%d\n",swcnt);
       for (i=1; i<=swcnt; i++) {
                fprintf(g,"%d %d\n",sw[i][0],sw[i][1]);
       }
       fclose(f);
       fclose(g);
}