Cod sursa(job #2595630)

Utilizator denmirceaBrasoveanu Mircea denmircea Data 8 aprilie 2020 01:04:51
Problema Farfurii Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <bits/stdc++.h>
#define dim 100005
using namespace std;
ifstream fin("farfurii.in");
ofstream fout("farfurii.out");
int n,k,p,i;
bitset<dim> fr;
int caut(int k){
/// n pt suma gauss <=k
int st=1,dr=104,mid;
while(st<=dr){
    mid=(st+dr)/2;
    if(mid*(mid+1)/2>k)
        dr=mid-1;
    else st=mid+1;
}
return dr;
}
int main()
{
  fin>>n>>k;
  p=caut(k);  /// ultimele p pozitii descrescatoare
  k-=p*(p+1)/2;
  /// mai sunt k pozitii;
    for(i=1;i<=n-p-2;i++)
        fout<<i<<" ",fr[i]=1;
    fout<<n-k<<" ";
    fr[n-k]=1;
    for(i=n;i>=1;i--)
        if(fr[i]==0)
        fout<<i<<" ";
}