Cod sursa(job #2093203)

Utilizator gundorfMoldovan George gundorf Data 23 decembrie 2017 11:07:30
Problema Farfurii Scor 90
Compilator c Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <stdio.h>
#include <stdlib.h>
#define Nmax 100005
FILE *f;
FILE *g;
void muta (int l,int r,int *a)
{
    int i,aux;
    aux=a[r];
    for (i=r;i>l;i--)
        a[i]=a[i-1];
    a[l]=aux;
}

int main()
{int i,n,k,poz=1;
 int de_scos;// cate inversiuni trebuie scoase
 int *vector;
  vector=malloc(Nmax*sizeof(int));
int aux;
    f=fopen("farfurii.in","r");
    g=fopen("farfurii.out","w");
    fscanf(f,"%d %d",&n,&k);

    while (poz*(poz+1)/2<k) poz++;
    aux=n;
    printf ("%d",poz);
    for (i=1;i<=n-(poz+1);i++)
        vector[i]=i;
    for (i=n-(poz);i<=n;i++)
    {
        vector[i]=aux;
        aux--;
    }
    de_scos=(poz)*(poz+1)/2-k;

    muta(n-poz,n-poz+de_scos,vector);

    for (i=1;i<=n;i++)
        fprintf (g,"%d ",vector[i]);
    return 0;
}