Cod sursa(job #1679582)

Utilizator TarabanDragosTaraban Dragos-Petru TarabanDragos Data 8 aprilie 2016 03:48:33
Problema Euro Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.17 kb
#include<cstdio>
int n,m,i,j,s,nr,v[1010],x[1010],y[1010];
FILE *f,*g;
int main(){
    f=fopen("razboi2.in","r");
    g=fopen("razboi2.out","w");
    fscanf(f,"%d",&n);
    for(i=1;i<=n;i++){
        fscanf(f,"%d",&v[i]);
    }
    m = n;
    while(m){
        nr = 0;
        for(i=1;i<=1000;i++){
            x[i] = y[i] = 0;
        }
        for(i=1;i<=m;i++){
            x[i] = ( x[ i - 1 ] + v[i] ) % m;
            if( x[i] == 0 ){
                for(j=1;j<=i;j++){
                    fprintf(g,"%d ",v[j]);
                }
                fprintf(g,"\n");
                for(j=i+1;j<=m;j++){
                    v[++nr] = v[j];
                }
                break;
            }
            if( y[ x[i] ] ){
                for(j=y[ x[i] ]+1;j<=i;j++){
                    fprintf(g,"%d ",v[j]);
                }
                for(j=1;j<=m;j++){
                    if( j <= y[ x[i] ] || j > i )
                        v[++nr] = v[j];
                }
                fprintf(g,"\n");
                break;
            }
            y[ x[i] ] = i;
        }
        m = nr;
    }

    fclose(f);
    fclose(g);
    return 0;
}