Skip to content
Snippets Groups Projects
fl.cpp 535 B
Newer Older
  • Learn to ignore specific revisions
  • Kai Renz's avatar
    Kai Renz committed
    //
    // Created by Kai Renz on 02.11.23.
    //
    
    
    int fl(int* i,int l) {
        for (int k=0;k<l;k++) {
            if (i[k]<0||i[k]>=l) {
                i[k]=-1;
            } else {
                if (i[k]!=k) {
                    int v=i[k];
                    if (i[k]!=k) {
                        i[k]=-1;
                    }
                    while (v>=0&&v<l&&i[v]!=v) {
                        int t=i[v];
                        i[v]=v;
                        v=t;
                    }
                }
            }
        }
        int m=0;
        for (;m<l&&i[m]!=-1;m++) {}
        return m;
    }