Cod sursa(job #1501981)

Utilizator dyanagGrigore Diana dyanag Data 14 octombrie 2015 00:20:21
Problema Farfurii Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <cstdio>
#include<cmath>
using namespace std;

FILE *f=fopen("farfurii.in", "r");
FILE *g=fopen("farfurii.out", "w");

int n, k, v[100005], a[100005];

int main()
{
    fscanf(f, "%d%d", &n, &k);
    long long x=sqrt(2*k);
    if(x*(x-1)>2*k) --x;
    if(x*(x+1)<2*k) ++x;
    int w=x-2;
    for(int i=1; i<=w; ++i)
        fprintf(g, "%d ", i);
    w=n-w;
    x=-(x*(x-1)/2-k);
    for(int i=1; i<=w; ++i){
        v[i]=n-i+1;
        a[i]=i-1;
    }
    for(int i=w; i>=1&&x!=0; --i)
        if(x>=a[i]){
            fprintf(g, "%d ", v[i]);
            x-=a[i];
            v[i]=-1;
        }
    for(int i=1; i<=w; ++i)
        if(v[i]!=-1)
            fprintf(g, "%d ", v[i]);
return 0;
}