Cod sursa(job #1892089)

Utilizator julianvladucuVladucu Iuliu Cristian julianvladucu Data 24 februarie 2017 17:24:47
Problema Farfurii Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <cstdio>
#include <fstream>
using namespace std;
typedef unsigned long long llg;
llg n,k;
llg caut(int st,int dr,int n)
{
    if(st==dr)
        return st;
    else
    {
        int p=(st+dr)/2;
        if(p*(p-1)/2==n)
            return p;
        else
            if(p*(p-1)/2<n)
            return caut(p+1,dr,n);
        else
            return caut(st,p,n);
    }
}
int main()
{
    FILE *f,*g;
    f=fopen("farfurii.in","r");
    g=fopen("farfurii.out","w");
    fscanf(f,"%d%d",&n,&k);
    llg i,j=caut(1,n,k),x=n-j+1,y;
    for(int i=1;i<x;i++)
        fprintf(g,"%d ",i);
    y=x+k-(j-1)*(j-2)/2;
    fprintf(g,"%d ",y);
    for(int i=n;i>=x;i--)
        if(i!=y)
            fprintf(g,"%d ",i);
    fclose(f);
    fclose(g);
    return 0;
}